Skip to content

PNG in ICO umwandeln (und ICO in PNG)

PNG, JPG, SVG oder WebP in ein echtes Multi-Size-ICO umwandeln: 16, 32 und 48 px in einer Datei, Alphakanal vollständig erhalten. Speicherform PNG oder unkomprimierte Bitmap, beide Größen im Vergleich. Öffnet .ico auch wieder.

Kein Tracking Läuft im Browser Kostenlos
Die Umwandlung läuft vollständig in Ihrem Browser. Ihr Bild wird nie hochgeladen.

Bild hierher ziehen oder zum Auswählen klicken

PNG, JPG, SVG, WebP, GIF oder BMP · bis 10 MB

Zu packende Größen

16, 32 und 48 px sind der Satz aus der Microsoft-Icon-Richtlinie von 1995 und die Kombination, die in echten Favicons am häufigsten vorkommt. 512 wird nicht angeboten: Das Verzeichnis speichert die Seitenlänge in einem Byte, es gibt dafür also keine gültige Darstellung.

Beide sind in einer .ico-Datei zulässig. PNG wird von Windows seit Vista und von jedem aktuellen Browser gelesen; unkomprimierte Bitmaps stecken in 13 der 14 echten ICO-Dateien, die sich auf 20 untersuchten Websites fanden, weil ImageMagick standardmäßig in sie umwandelt.

Was in einer .ico-Datei steckt (Beispiel 16 + 32 + 48 px)
Position Bytes Feld Wert
0 2 idReserved 0
2 2 idType 1
4 2 idCount 3
6 1 bWidth[0] 16 → 16
7 1 bHeight[0] 16 → 16
8 1 bColorCount[0] 0
9 1 bReserved[0] 0
10 2 wPlanes[0] 1
12 2 wBitCount[0] 32
14 4 dwBytesInRes[0] 248
18 4 dwImageOffset[0] 54
22 1 bWidth[1] 32 → 32
23 1 bHeight[1] 32 → 32
24 1 bColorCount[1] 0
25 1 bReserved[1] 0
26 2 wPlanes[1] 1
28 2 wBitCount[1] 32
30 4 dwBytesInRes[1] 720
34 4 dwImageOffset[1] 302
38 1 bWidth[2] 48 → 48
39 1 bHeight[2] 48 → 48
40 1 bColorCount[2] 0
41 1 bReserved[2] 0
42 2 wPlanes[2] 1
44 2 wBitCount[2] 32
46 4 dwBytesInRes[2] 1464
50 4 dwImageOffset[2] 1022
Der Hex-Dump, die Byteanzahlen und die auf dieser Seite zitierte Kommandoausgabe wurden aus Dateien erfasst, die dieses Tool erzeugt hat, und jede Aussage über das Verhalten von Decodern wurde gegen drei unabhängige Implementierungen gegengeprüft: einen von Grund auf geschriebenen Encoder, Pillow 12.3.0 und Chromiums eigenen ICO-Decoder. Die Beobachtung, dass die meisten ausgelieferten Favicons unkomprimierte Bitmaps verwenden, stammt aus dem Abrufen und Auswerten der Icon-Dateien von zwanzig bekannten Websites im September 2026. — Go Tools Engineering · Sep 22, 2026

Geschrieben und geprüft von den Entwicklern, die die Konvertierungswerkzeuge von Go Tools bauen. Der Aufbau des Containers, die Byteanzahlen und die hier beschriebenen Fehlerbilder stammen aus einer schriftlichen Fachprüfung und nicht aus den Zusammenfassungen anderer Leute über dieses Format.

PNG in ICO — kurze Antworten

Welche Größen gehören in eine favicon.ico?

16, 32 und 48 px Diese drei decken den Browser-Tab, den Alt-Tab-Umschalter und den Desktop ab und sind seit 1995 der empfohlene Satz. 256 kommt nur dazu, wenn das Icon auch in einer Großsymbolansicht bestehen muss.

Kann eine .ico-Datei mehrere Größen enthalten?

Ja — genau dafür ist es da Das Format ist ein Container: ein sechs Byte langer Header, pro Bild ein 16 Byte langer Verzeichniseintrag, dann die Bilder. Jedes davon ist eine eigene Zeichnung, und deshalb bleibt ein gutes Icon auch bei 16 px klar.

Geht beim Umwandeln von PNG in ICO die Transparenz verloren?

Nein, wenn es richtig gemacht wird Beide Speicherformen innerhalb einer .ico-Datei tragen einen vollen 8-Bit-Alphakanal. Transparenz geht nur verloren, wenn ein Werkzeug die Alpha-Bytes leer lässt oder die 1-Bit-Maske weglässt, die ältere Software stattdessen liest.

Wie groß ist eine 256-px-Ebene in einer .ico-Datei?

264 KB unkomprimiert, als PNG ein paar KB Eine unkomprimierte 256-px-Ebene ist exakt 270.376 Byte groß — 40 Byte Header, 262.144 Byte Pixel und 8.192 Byte Maske —, ganz gleich, was das Bild zeigt. Als PNG abgelegt kostet dieselbe Ebene meist ein paar Kilobyte.

Was ist eine ICO-Datei?

Eine .ico-Datei ist weniger ein Bildformat als ein kleines Archiv aus Bildern. Sie beginnt mit einem sechs Byte langen Header, der angibt, wie viele Bilder enthalten sind, gefolgt von je einem 16 Byte langen Verzeichniseintrag pro Bild mit Breite, Höhe, Byteanzahl und Position in der Datei, und erst danach kommen die Bilddaten selbst. Jedes Bild kann auf zwei Arten abgelegt sein: als vollständige, im Ganzen eingebettete PNG-Datei oder als unkomprimierte Windows-Bitmap, unter die eine 1-Bit-Transparenzmaske gehängt ist.

Dieser Aufbau ist der Grund, warum ein Favicon im Browser-Tab bei 16 px und im Dateimanager bei 48 px gleichermaßen scharf aussehen kann — es sind verschiedene Zeichnungen, für jede Größe von Hand abgestimmt, und nicht ein einziges Bild, das skaliert wird. Er ist auch der Grund für ein paar Überraschungen. Die Seitenlänge steht in einem einzigen Byte, deshalb wird 256 als Null geschrieben und 512 lässt sich gar nicht schreiben. Und das Verzeichnis hält für jeden Eintrag eine Größe fest, die in den Bilddaten selbst ebenfalls steht — die beiden können sich also widersprechen, und unterschiedliche Software glaubt Unterschiedlichem.

$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 16x16, 32 bits/pixel, 32x32, 32 bits/pixel

$ python3 -c "from PIL import Image; print(sorted(Image.open('favicon.ico').ico.sizes()))"
[(16, 16), (32, 32), (48, 48)]

Was dieser ICO-Konverter leistet

Eine Datei, jede angehakte Größe

16, 32 und 48 px als Voreinstellung, bis hinauf zu 256. Jede Größe wird einzeln aus dem Original in voller Qualität gezeichnet, statt aus der Ebene darüber verkleinert zu werden — kleine Größen erben so nicht die Unschärfe einer größeren.

PNG oder unkomprimierte Bitmap, mit beiden Größenangaben

Die beiden zulässigen Speicherformen haben sehr unterschiedliche Kompromisse, und die meisten Konverter erwähnen nie, welche davon sie schreiben. Hier ist es ein Schalter, und die jeweils entstehende Dateigröße wird angezeigt — die Entscheidung fällt also anhand einer Zahl und nicht aus dem Bauch heraus.

Transparenz, die beide Wege übersteht

Der Alphakanal wird vollständig geschrieben, und die 1-Bit-Maske, die ältere Software stattdessen liest, wird daraus abgeleitet statt leer gelassen. Eine leere Maske ist genau das, was aus einem transparenten Icon überall dort ein schwarzes Quadrat macht, wo nur die Maske gelesen wird.

Ein ICO-Viewer, nicht nur ein Download-Knopf

Der umgekehrte Tab listet jedes Bild in einer .ico-Datei mit echter Größe, Speicherform, Farbtiefe und der Herkunft seiner Transparenz auf — einschließlich palettenbasierter Bitmaps, die mehrere bekannte Favicons bis heute verwenden. Ein Browser zeigt Ihnen immer nur eines davon.

Es sagt Ihnen, wenn eine Datei widersprüchlich ist

Behauptet das Verzeichnis eine Größe, zu der die Bilddaten nicht passen, wird das gemeldet. Ebenso ein eingebettetes PNG, das Firefox wegwirft: Sein ICO-Decoder nimmt nur 8-Bit-RGB oder -RGBA, eine Ebene mit Palette oder Graustufen verschwindet dort also einfach, während jeder andere Browser sie anzeigt. Beides sind häufige Gründe dafür, dass ein Icon in einem Programm funktioniert und in einem anderen leer bleibt, und kein anderer Konverter weist auf eines von beiden hin.

Nichts wird hochgeladen

Lesen, Skalieren und Packen passieren vollständig auf dieser Seite. Die Datei erreicht nie einen Server, es gibt also hinterher nichts zu löschen und keine Warteschlange.

PNG per Code in ICO umwandeln

ImageMagick

magick in.png -define icon:auto-resize=48,32,16 favicon.ico

Die übliche Antwort und der Grund, warum so viele Favicons unkomprimiert sind. Jede Ebene außer 256 px wird vor dem Packen in eine Bitmap umgewandelt, drei Größen kommen also mit rund 15 KB statt ein paar hundert Byte heraus. Die Größen werden mit der größten zuerst geschrieben.

Python + Pillow

img.save('favicon.ico', sizes=[(16,16),(32,32),(48,48)])

Bettet PNG ein, dieselben drei Größen landen also in etwa einem Zehntel des Platzes. Pillow liest ICO außerdem gut: Image.open(f).ico.sizes() listet auf, was drinsteckt — praktisch, um die Datei von jemand anderem zu prüfen.

png-to-ico (npm)

npx png-to-ico icon.png > favicon.ico

Ein Einzweck-CLI, das ein oder mehrere PNGs nimmt und sie als PNG-Nutzdaten packt. Praktisch in einem Build-Skript; es skaliert nicht für Sie, jede Größe muss also als eigene Datei vorliegen.

sharp

sharp(input).resize(32).png()

Hervorragend, um die einzelnen PNGs zu erzeugen, aber es schreibt keine ICO-Container und wird deshalb normalerweise mit einem der Packer oben kombiniert. Eine häufige Verwirrungsquelle, wenn eine Build-Pipeline ohnehin schon auf sharp standardisiert ist.

Go

github.com/Kodeworks/golang-image-ico

Schreibt ein ICO mit einem einzigen Bild aus einem image.Image. Für ein Favicon in einer Größe reicht das; mehrere Größen in einen Container zu packen heißt, das Verzeichnis selbst zu schreiben, und das sind etwa dreißig Zeilen.

Windows-Ressourcencompiler

.rc-Ressourcenskript, rc.exe

So entstehen Anwendungssymbole normalerweise. Der Compiler bettet die .ico-Datei in den Ressourcenabschnitt der ausführbaren Datei ein; der Container darin hat exakt dasselbe Format wie ein Web-Favicon.

GIMP

Datei → Exportieren nach → .ico

Exportiert jede Ebene des Bildes als eine Icon-Größe und lässt Sie die Farbtiefe pro Ebene wählen, einschließlich komprimiertem PNG. Eines der wenigen grafischen Werkzeuge, das diese Wahl offenlegt, statt sie stillschweigend zu treffen.

macOS sips

sips -s format ico in.png --out favicon.ico

macOS hat sehr wohl einen ICO-Writer: sips --formats führt com.microsoft.ico als beschreibbar auf, und der Befehl oben hat hier eine gültige Datei erzeugt. Was er nicht kann, ist mehrere Größen zu packen — die Ausgabe war eine einzelne 48×48-Ebene. iconutil, das Suchergebnisse stattdessen meist vorschlagen, erzeugt .icns, Apples eigenen Container, den Windows und Browser nicht lesen.

PNG in ICO, Byte für Byte

Die ersten 38 Bytes eines ICO mit drei Größen

$ xxd -l 38 favicon.ico
00000000: 0000 0100 0300 1010 0000 0100 2000 e903  ............ ...
00000010: 0000 3600 0000 2020 0000 0100 2000 6c05  ..6...  .... .l.
00000020: 0000 1f04 0000                           ......

0000 ist das reservierte Feld, 0100 steht für Typ 1 (Icon, nicht Cursor), 0300 sagt: drei Bilder. Dann folgt der erste 16 Byte lange Verzeichniseintrag: 10 10 ist 16×16, 00 die Farbanzahl, 00 reserviert, 0100 eine Farbebene, 2000 32 Bit pro Pixel, e903 0000 sind 1.001 Byte Nutzdaten an der Position 3600 0000 = 54 — also genau 6 + 3 × 16, das Ende des Verzeichnisses. Alle mehrbytigen Zahlen sind Little-Endian, außer den Größen, die einzelne Bytes sind.

Ein 256-px-Eintrag speichert Null, nicht 256

bWidth = 0x00    bHeight = 0x00
256 × 256

Für jede Seitenlänge steht im Verzeichnis genau ein Byte, also ist 255 die größte Zahl, die hineinpasst, und 0 ist als 256 definiert. Deshalb wird 512 px auf dieser Seite auch nirgends angeboten: Es gibt kein Byte, das 512 bedeutet. Mehrere Online-Konverter bieten es trotzdem an und schreiben ein 512-px-Bild hinter einen Verzeichniseintrag, der es gar nicht beschreiben kann.

Dieselben drei Größen, zwei Speicherformen

16 + 32 + 48 px, PNG payloads
16 + 32 + 48 px, uncompressed BMP payloads
389 bytes
15,086 bytes

Unkomprimierte Nutzdaten kosten 40 + Breite × Höhe × 4 Byte plus eine 1-Bit-Maske; ihre Größe hängt damit allein von den Abmessungen ab und überhaupt nicht vom Bildinhalt. Genau deshalb können drei verschiedene Websites drei völlig unterschiedliche Icons in Dateien gleicher Länge ausliefern.

Dieselbe Datei auf der Kommandozeile bauen

$ magick logo.png -define icon:auto-resize=48,32,16 favicon.ico
$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 48x48, 32 bits/pixel, 32x32, 32 bits/pixel

ImageMagick wandelt jede Ebene außer 256 px vor dem Packen in eine unkomprimierte Bitmap um — deshalb liegt die Ausgabe bei rund 15 KB statt bei ein paar hundert Byte. Pillow macht es umgekehrt und bettet PNG ein: Image.open('logo.png').save('favicon.ico', sizes=[(16,16),(32,32),(48,48)]).

Ein ICO wieder auspacken

$ magick favicon.ico favicon-%d.png
favicon-0.png   48×48
favicon-1.png   32×32
favicon-2.png   16×16

Ein Browser kann Ihnen das nicht abnehmen. Geben Sie ein Multi-Size-ICO an ein <img>-Tag, bekommen Sie genau ein Bild — das größte —, ganz gleich, in welcher Reihenfolge die Größen stehen. Aufzulisten, was wirklich in einer Datei steckt, heißt den Container selbst zu zerlegen, und genau das macht der Tab ICO → PNG.

PNG in ICO umwandeln — Schritt für Schritt

  1. 1

    Bild ablegen

    PNG, JPG, SVG, WebP, GIF und BMP werden alle akzeptiert, bis 10 MB. Nichts verlässt den Browser: Die Datei wird über die File API gelesen, und jedes Pixel wird auf einem lokalen Canvas gezeichnet.

  2. 2

    Größen auswählen

    16, 32 und 48 px sind zu Beginn angehakt. Nehmen Sie 64, 128 oder 256 dazu, wenn das Icon eine Großsymbolansicht oder einen hochauflösenden Desktop überstehen muss. Ist Ihre Vorlage kleiner als die größte angehakte Größe, sagt die Seite das, statt sie stillschweigend zu vergrößern.

  3. 3

    Speicherform wählen

    PNG ist die Voreinstellung, weil es eine Größenordnung kleiner ist und von jedem aktuellen Browser und jedem Windows seit Vista gelesen wird. Wechseln Sie zur unkomprimierten Bitmap, wenn Sie die Form wollen, in der die meisten ausgelieferten Favicons tatsächlich vorliegen. Beide Dateigrößen stehen nebeneinander.

  4. 4

    Herunterladen und einbinden

    Speichern Sie die .ico-Datei und holen Sie sich das Markup über die Schaltfläche „link-Tags kopieren“. Der Pfad /favicon.ico im Wurzelverzeichnis funktioniert weiterhin als Rückfallebene, aber ein ausdrückliches link-Element ist der Weg, den Browser zuerst versuchen sollen.

Warum ICO-Dateien kaputtgehen

Eine 256-px-Ebene, die als 255 geschrieben wird

Das Verzeichnisbyte für ein 256-px-Bild muss 0 sein. 255 zu schreiben sieht nach einem harmlosen Off-by-one aus und erzeugt eine Datei, die manche Browser stillschweigend nicht zeichnen.

✗ Falsch
bWidth = 0xFF   bHeight = 0xFF   ; „255“, gemeint war 256
✓ Richtig
bWidth = 0x00   bHeight = 0x00   ; 0 ist als 256 definiert

Verzeichnis und Bild widersprechen sich bei der Größe

Steht in einem Verzeichniseintrag 16×16 über Nutzdaten, die in Wahrheit 32×32 sind, teilen sich die Decoder: Manche vertrauen dem Verzeichnis und zeichnen gar nichts, andere vertrauen den Nutzdaten und stellen das Bild sauber dar. Die Datei funktioniert dann auf einem Rechner und ist auf einem anderen unsichtbar.

✗ Falsch
entry: 16×16     payload IHDR: 32×32
✓ Richtig
entry: 32×32     payload IHDR: 32×32

Das Höhenfeld der Bitmap wird nicht verdoppelt

Innerhalb einer unkomprimierten Ebene umfasst die Höhe Farbdaten und Maske zusammen. Die einfache Höhe zu schreiben erzeugt eine Datei, die in manchen Decodern leer bleibt und in anderen als untere Bildhälfte erscheint — in beiden Fällen ohne Fehlermeldung.

✗ Falsch
biHeight = 32        ; für ein 32-px-Bild
✓ Richtig
biHeight = 64        ; 2 × 32, Farbdaten plus Maske

Eine unkomprimierte Ebene mit leerem Alphakanal

Manche Werkzeuge füllen die Maske und lassen jedes Alpha-Byte auf null. Ein Decoder liest das als vollständig transparentes Bild, und das Icon verschwindet; ein anderer fällt auf die Maske zurück und zeigt es korrekt. Beides konsequent zu schreiben erspart den ganzen Streit.

✗ Falsch
alpha bytes: all 0x00   mask: all 0x00
✓ Richtig
alpha bytes: real values   mask: set where alpha < 128

Ein SVG, das eine Datei aus dem Internet nachlädt

Externe Verweise in einem SVG werden beim Rastern blockiert, und nichts meldet es — kein Fehler wird ausgelöst, und das Canvas bleibt lesbar. Der Platzhalter für ein kaputtes Bild wird dann einfach ins Icon eingebacken. Binden Sie die Zeichnung vor dem Umwandeln direkt ein.

✗ Falsch
<image href="https://cdn.example.com/logo.png"/>
✓ Richtig
<image href="data:image/png;base64,iVBORw0KGgo…"/>

Wann Sie einen PNG-in-ICO-Konverter brauchen

Ein Favicon für eine neue Website ausliefern
Logo ablegen, die drei voreingestellten Größen behalten, favicon.ico herunterladen und ins Wurzelverzeichnis legen. Die kopierten link-Tags liefern das moderne Markup für dasselbe Icon, zusammen mit einem SVG und einem Apple-Touch-Icon.
Ein Icon reparieren, das groß gut und klein matschig aussieht
Meist enthält die Datei nur eine große Ebene, und alles Kleinere ist der Browser, der sie verkleinert. Eine echte 16-px-Ebene, aus der Vorlage gezeichnet statt aus der 256-px-Fassung, behebt das.
Einer Desktop-Anwendung ihr Icon geben
Windows-Programme, Installer und Verknüpfungen nehmen .ico, und verschiedene Teile der Shell greifen auf verschiedene Größen derselben Datei zu. 16, 32, 48 und 256 decken die kleinen Symbole in Listen, den Alt-Tab-Umschalter und die Großsymbolansichten ab.
Herausfinden, warum ein Icon hier erscheint und dort nicht
Öffnen Sie die Datei im Tab ICO → PNG. Eine im Verzeichnis falsch beschriebene Größe, eine Ebene ganz ohne Alpha oder ein abgeschnittener Eintrag tauchen alle in der Liste auf, und jede intakte Ebene lässt sich weiterhin exportieren, auch wenn eine benachbarte defekt ist.
PNGs aus einer alten .ico-Datei zurückholen
Aus einem alten Projekt geerbte Icons sind oft die einzige erhaltene Fassung eines Logos. Der umgekehrte Tab exportiert jede Ebene als eigenes PNG, auch Ebenen, die als Palettenbitmaps abgelegt sind und die die meisten Konverter ablehnen.

Was wirklich in einer .ico-Datei steckt

Sechs Bytes, dann sechzehn pro Bild
Der Header besteht aus 00 00 reserviert, 01 00 für ein Icon (02 00 kennzeichnet eine Cursordatei) und einer zwei Byte langen Anzahl. Jeder Verzeichniseintrag beginnt mit Breite, Höhe, Palettengröße und einem reservierten Byte — je ein Byte —, gefolgt von zwei Byte langen Feldern für Farbebenen und Bit pro Pixel sowie zwei vier Byte langen Feldern für Länge und Position der Nutzdaten. Alles Mehrbytige ist Little-Endian.
Null bedeutet 256, und 512 ist nicht darstellbar
Weil Breite und Höhe einzelne Bytes sind, muss 256 als 0 kodiert werden, und alles Größere hat überhaupt keine Kodierung. Für eine 256-px-Ebene 255 statt 0 zu schreiben ist keine gute Näherung — es entsteht eine Datei, die Browser schlicht nicht zeichnen. Konverter mit einer 512-px-Option schreiben Einträge, die ihren eigenen Inhalt nicht beschreiben können.
Eine unkomprimierte Ebene kostet exakt 40 + B × H × 4 Byte, plus Maske
Die Maske fügt pro Zeile ceil(Breite ÷ 32) × 4 Byte hinzu. Eine 16-px-Ebene ist damit 1.128 Byte groß, 48 px sind 9.640 und 256 px sind 270.376 — unabhängig davon, was das Bild zeigt. Diese feste Größe ist der Grund, warum drei voneinander unabhängige Websites Favicons byteidentischer Länge ausliefern können, und auch der Grund, warum eine 256-px-Ebene hier nur angeboten wird, wenn die Nutzdaten PNG sind.
Der Bitmap-Header speichert die doppelte Höhe
Innerhalb einer unkomprimierten Ebene beschreibt das Höhenfeld die Farbbitmap und die Transparenzmaske übereinandergestapelt, es wird also als doppelte tatsächliche Höhe geschrieben, selbst wenn die Maske keinerlei Information trägt. Das falsch zu machen gehört zu den leisesten Fehlern des Formats: Manche Decoder liefern ein leeres Bild, andere die untere Hälfte, und keiner meldet einen Fehler.
Die Felder für Farbebenen, Bit pro Pixel und Farbanzahl sind bestenfalls Hinweise
Die Spezifikation ist bei ihnen genau, und echte Dateien ignorieren sie. Microsofts eigene Dokumentationsseite liefert ein Favicon aus, dessen Verzeichnis null Farbebenen und null Bit pro Pixel über Nutzdaten mit vier Bit pro Pixel behauptet — und es wird überall angezeigt. Decoder ermitteln das echte Format aus den Nutzdaten — einer PNG-Signatur oder dem Bitmap-Header —, statt dem Verzeichnis zu vertrauen.
Für ICO hat es nie einen RFC gegeben
Der Medientyp image/vnd.microsoft.icon wurde im September 2003 bei der IANA registriert, und die dort angegebene Quelle ist ein Microsoft-Artikel von 1995 mit dem Titel „Icons in Win32“. RFC 2361, der häufig als ICO-Spezifikation zitiert wird, trägt in Wahrheit den Titel „WAVE and AVI Codec Registries“ und sagt über Bilder überhaupt nichts.

Ein favicon.ico richtig machen

Für das Web 16, 32 und 48 packen und es dabei belassen
Dieses Trio ist seit 1995 der empfohlene Satz und noch immer die Kombination, die in echten Favicons am häufigsten vorkommt. Zusätzliche Größen sind nicht umsonst — jede davon ist eine weitere Ebene, die ein Browser möglicherweise herunterlädt, bevor er weiß, welche er überhaupt will.
Die 16-px-Ebene zeichnen, nicht bloß die große verkleinern
Ein Logo, das bei 256 px funktioniert, verliert seine dünnen Striche meist auf dem Weg zu 16. Wenn die kleine Größe zählt, vereinfachen Sie die Zeichnung dafür — weniger Formen, kräftigere Linien — und packen Sie diese vereinfachte Fassung als eigene Ebene.
Ein link-Element verwenden und /favicon.ico als Rückfallebene behalten
Die HTML-Spezifikation sagt Browsern nur, dass sie /favicon.ico abrufen dürfen, und auch nur dann, wenn kein Icon-Link vorhanden ist. Ein ausdrückliches link-Element ist der verlässliche Weg; die Datei im Wurzelverzeichnis verdient sich ihren Platz weiterhin bei Feedreadern, Crawlern und allem anderen, das Ihr Markup nicht auswertet.
Eine Größe über 48 px ergänzen, wenn Suchergebnisse zählen
Googles Favicon-Leitfaden verlangt ein quadratisches Bild von mindestens 8 px und empfiehlt mehr als 48 px, damit es auf allen Oberflächen besteht. PNG wird dabei genauso akzeptiert wie ICO, die große Größe muss also gar nicht in der .ico-Datei liegen.
Die Datei prüfen, nicht nur ansehen
Ein Icon, das in Ihrem Browser erscheint, kann trotzdem falsch sein: ein unpassender Verzeichniseintrag, ein fehlender Alphakanal oder eine unlesbare Ebene hindern das eine Bild, das Ihr Browser ausgewählt hat, nicht am Anzeigen. Im umgekehrten Tab geöffnet, zeigt die Datei alle davon.

Häufige Fragen zu PNG in ICO

Wie wandle ich ein PNG in eine ICO-Datei um?
Legen Sie das PNG auf dieser Seite ab, lassen Sie 16, 32 und 48 px angehakt und laden Sie das Ergebnis herunter. Alles läuft im Browser, das Bild wird also nie hochgeladen. Auf der Kommandozeile ist das übliche Gegenstück magick logo.png -define icon:auto-resize=48,32,16 favicon.ico.
Warum sieht mein Icon in kleinen Größen unscharf aus?
Fast immer, weil die Datei ein einziges großes Bild enthält und alles Kleine ein Browser ist, der es im Flug verkleinert. Sobald das Pixelraster schrumpft, ist keine Verkleinerung mehr verlustfrei: Dünne Striche und feine Details verschwinden unterhalb von etwa 24 px, ganz gleich wie gut das Resampling ist — die Qualität entscheidet sich also daran, welche Größen eingepackt sind, und nicht am Konverter. Packen Sie eine echte 16-px-Ebene, und wenn das Logo detailreich ist, vereinfachen Sie die Zeichnung für diese Ebene, statt sie zu skalieren.
Sollen die Bilder darin PNG oder unkomprimierte Bitmaps sein?
PNG, sofern nichts dagegen spricht: Es ist eine Größenordnung kleiner und wird von jedem aktuellen Browser und jeder Windows-Version seit Vista gelesen. Unkomprimierte Bitmaps bleiben in freier Wildbahn die häufigere Wahl, vor allem weil ImageMagick standardmäßig in sie umwandelt, und sie sind für sehr alte Software die sicherere Variante. Die Seite zeigt beide Dateigrößen, damit Sie anhand der Zahl entscheiden können.
Warum gibt es keine Option für 512 px?
Das Verzeichnis speichert jede Seitenlänge in einem einzigen Byte, der größte ausdrückbare Wert ist also 255, und 0 ist für 256 reserviert. 512 lässt sich gar nicht schreiben. Konverter, die es anbieten, erzeugen einen Verzeichniseintrag, der das dahinterliegende Bild nicht beschreibt — ein guter Weg zu einem Icon, das manche Software schlicht nicht anzeigt.
Bleibt ein PNG mit transparentem Hintergrund auch als ICO transparent?
Ja. Der Alphakanal wird vollständig geschrieben, und die 1-Bit-Maske, die ältere Software stattdessen liest, wird daraus abgeleitet statt leer gelassen — genau diese leere Maske macht aus einem transparenten Hintergrund in Werkzeugen, die sie nicht füllen, ein schwarzes Quadrat. Ein teilweise transparentes Pixel gilt in der Maske als transparent, sobald sein Alpha unter die Hälfte fällt — die einzige mögliche Wahl, da die Maske ein Bit pro Pixel hat.
Kann ich ein SVG in ICO umwandeln?
Ja, und eine Vektorvorlage ist die bestmögliche Eingabe, weil jede Größe aus der Geometrie gezeichnet und nicht aus einer Bitmap neu abgetastet wird. Ein Vorbehalt: Alles, was das SVG über das Netz nachlädt — ein verlinktes Bild, eine entfernte Schrift, ein importiertes Stylesheet —, wird während der Umwandlung blockiert, ohne dass ein Fehler auftritt. Die Seite prüft auf solche Verweise und warnt Sie.
Brauche ich im Wurzelverzeichnis noch eine favicon.ico?
Sie ist es wert, vorhanden zu sein, aber sie ist nicht mehr der Hauptweg. Die HTML-Spezifikation sagt, dass Browser /favicon.ico anfordern dürfen, und auch nur dann, wenn die Seite kein Icon-link-Element hat. Ein link-Element ist das, was Browser zuerst verwenden sollen; die Datei im Wurzelverzeichnis deckt Feedreader, Crawler und alles andere ab, das Ihr HTML nie auswertet.
Braucht Google für Suchergebnisse eine ICO-Datei?
Nein. Googles Favicon-Dokumentation akzeptiert BMP, GIF, ICO, PNG, JPEG, PPM und TIFF, verlangt ein quadratisches Bild von mindestens 8 px und empfiehlt mehr als 48 px, damit es auf verschiedenen Oberflächen gut aussieht. Ein einzelnes großes PNG genügt dafür; die .ico-Datei ist für alles Übrige da.
Warum zeigt mein Browser nur eine Größe, wenn ich eine .ico-Datei öffne?
Weil mehr ein Bildelement nicht hergibt. Geben Sie einem Browser ein Multi-Size-ICO, sucht er sich ein Bild aus — in der Praxis das größte — und der Rest bleibt unerreichbar. Jede Ebene aufzulisten heißt, den Container direkt zu zerlegen, und genau das macht der Tab ICO → PNG auf dieser Seite.
Was bedeutet es, wenn Verzeichnis und Bild sich bei der Größe widersprechen?
Es bedeutet, dass die Datei in sich widersprüchlich ist, und Decoder gehen damit entgegengesetzt um: Manche vertrauen dem Verzeichnis und zeichnen am Ende nichts, andere vertrauen den Bilddaten und stellen sie korrekt dar. Das ist eine klassische Ursache für ein Icon, das auf einem Rechner funktioniert und auf einem anderen unsichtbar ist — deshalb meldet diese Seite es beim Öffnen einer Datei.
Kann dieses Tool ICO-Dateien öffnen, die andere Konverter ablehnen?
Oft ja. Ebenen, die als Palettenbitmaps abgelegt sind — vier oder acht Bit pro Pixel —, werden von mehreren bekannten Favicons weiterhin verwendet, und viele Konverter verweigern sie rundweg. Defekte Ebenen werden außerdem einzeln behandelt, eine unlesbare Größe hindert die übrigen also nicht am Export. Die Auflistung markiert außerdem jede eingebettete PNG-Ebene, die Firefox verwirft: Sein ICO-Decoder nimmt nur 8-Bit-RGB oder -RGBA, ein PNG mit Palette oder Graustufen verschwindet dort also. Mozillas eigene Website hat genau dieses Problem ausgeliefert — ihre 64-px-Ebene ist ein Paletten-PNG, das Firefox selbst wegwirft, und nur die übrigen Ebenen halten das Icon sichtbar.
Wird mein Bild irgendwohin hochgeladen?
Nein. Die Datei wird über die File API des Browsers gelesen, auf dieser Seite auf ein Canvas gezeichnet und von lokal laufendem JavaScript in den Container gepackt. Keine Anfrage trägt das Bild irgendwohin, was Sie im Netzwerk-Panel Ihrer Entwicklerwerkzeuge nachprüfen können — oder indem Sie die Seite laden, die Verbindung trennen und trotzdem umwandeln: Nach dem Laden funktioniert alles offline.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →