ICO (Dateiformat)
# ICO (Dateiformat)

ICO ist die Dateinamensendung eines Dateiformats, das im Betriebssystem Microsoft Windows zur Speicherung von Icons verwendet wird. Anders als Windows Bitmaps (BMP) oder viele andere Grafikdateiformate können ICO-Dateien mehrere Einzelbilder enthalten, die das System je nach benötigter Auflösung und Farbtiefe benutzt. Auch andere Betriebssysteme wie Linux oder Mac OS X können mithilfe offen verfügbarer Programmbibliotheken damit umgehen.

Jedoch ist dies nicht als Synonym für Icons verwendbar, da praktisch jedes Grafikdateiformat für Icons verwendet werden kann. Für macOS steht beispielsweise das ICNS-Format zur Verfügung und im X-Window-System wird unter anderem das textbasierte XBM- bzw. XPM-Format genutzt. Unter modernen Plattformen werden zunehmend auch Vektorgrafiken (z. B. SVG) oder Rastergrafiken (z. B. PNG) in unterschiedlichen Größen und Formen als Icon genutzt.

## Geschichte

Die ursprüngliche Standard-Auflösung war 32×32 Pixel mit 16 Farben. Mit der Einführung von Windows 3.0 waren 256 Farben möglich. Jedes Einzelbild sollte eine gleich große 1-Bit-Grafik enthalten, die angibt, ob das jeweilige Pixel deckend oder mit XOR-Operation über den Hintergrund gezeichnet werden soll, wodurch sich Transparenz oder ein Negativbild des Hintergrunds erhalten lassen, wenn das eigentliche Bild an der Stelle schwarz bzw. weiß ist.

Seit Windows XP sind Icons und Cursors mit Alphakanal möglich. Die mitgelieferten Icons haben zumeist Alphakanäle und eine maximale Auflösung von 48×48 Pixel. Seit Windows Vista können ICO-Dateien bis zu 256×256 Pixel groß sein und in dem Fall optional als PNG komprimiert werden.

Betriebssystemübergreifende Verwendung findet das Format beim Favicon, einem Icon, das viele Webbrowser neben der URL oder in den Lesezeichen anzeigen.

## MIME-Type

Es existieren zwei verschiedene Definitionen für den MIME-Type:

* image/vnd.microsoft.icon
* image/x-icon

Der MIME-Type image/vnd.microsoft.icon wurde 2003 von einem Dritten bei der IANA eingereicht um die damals genutzten unterschiedlichen Typen wie text/ico, image/ico, image/icon und application/ico zu vereinheitlichen. Microsoft benutzte aber weiterhin image/x-icon in seinen Programmen und speziell im Web relevanten Internet Explorer ohne die Einreichung zu korrigieren oder adaptieren. Deshalb hat dieser MIME-Type eine höhere Verbreitung in Standards und Programmen.

## Ähnliche Dateiformate

Mehrere solche Icons können in Programmressourcen von PE- und NE-Dateien eingebunden sein. Technisch gesehen werden in so einer Datei alle Einzelbilder mit einer Nummer versehen und einzeln gespeichert (so genannte Icon Entries), zusätzlich zu einem „Inhaltsverzeichnis“ (Group Icon), das eine Nummer oder (in seltenen Fällen) einen Namen hat und die Einzelbilder wieder zusammenfasst. Die im alphabetisch ersten Group Icon angegebenen Einzelbilder bilden das Standard-Programmsymbol von EXE-Dateien. Sehr ähnlich verhält es sich mit Icon-Library-Dateien (Endung: .icl), die ebenfalls auf dem PE-Dateiformat basieren, aber nicht ausgeführt werden können. Auch hier wird eine Vorschau als Dateisymbol verwendet.

Bei dem Format für Mauszeiger – die auch sogenannten Cursor-Dateien von Windows (mit der Endung .cur) – handelt es sich, bis auf unterschiedliche Kennbytes im Dateivorspann (Magische Zahl), um das gleiche Format. Zusätzlich kann solch eine Cursor-Datei noch Informationen zum sogenannten hot spot beinhalten, also für den Punkt, mit dem tatsächlich geklickt wird. Zudem können mehrere Cursor in einer RIFF-Datei zu einem sogenannten animierten Cursor zusammengefasst werden.

ICO-Dateien können mit verschiedenen Grafikprogrammen bearbeitet bzw. aus anderen Formaten konvertiert werden, etwa CorelDraw, IrfanView, XnView oder GIMP. Allerdings schöpfen nicht alle Mehrzweckprogramme den vollen Funktionsumfang (mehrere Einzelbilder, Alphatransparenz, PNG-Komprimierung) des Dateiformats aus. In dem Fall muss auf spezialisierte Software zurückgegriffen werden.

