Datei hochladen
  1. base64hub
  2. Bild-Tools
  3. Base64 in ICO

Base64 in ICO

Fügen Sie das Base64 einer favicon.ico oder einer Cursor-Datei ein und speichern Sie es als echtes Icon. Eine ICO kann mehrere Bilder enthalten; diese Seite zeigt, wie Sie herausfinden, welche Größen in Ihrer stecken.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload ICO + CUR Icons und Cursor Aktualisiert 27.10.2026
Eingabe –Ausgabe –Größe –

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So wandeln Sie Base64 in ICO um

  1. Fügen Sie das Base64 ein, eine URI data:image/x-icon;base64,... oder das ganze Tag <link rel="icon" href="data:...">.
  2. Prüfen Sie, ob die Statuszeile bei Erkannt ICO zeigt, und sehen Sie sich die Vorschau an.
  3. Drücken Sie Datei herunterladen. Der Name lautet standardmäßig decoded.ico; benennen Sie ihn in favicon um, wenn die Datei auf eine Website kommt.

Das Feld MIME-Typ zeigt image/x-icon, den Typ, den die meisten Server und Data-URIs für Icons verwenden.

ICO-Dateien enthalten mehrere Bilder

Anders als PNG oder JPEG ist eine ICO-Datei ein kleiner Container. Eine typische favicon.ico enthält Versionen in 16×16, 32×32 und 48×48, Windows-Programmsymbole haben oft zusätzlich 256×256. Windows wählt die beste Größe für die Taskleiste, eine Desktop-Verknüpfung oder den Explorer; Browser wählen eine für den Tab.

Die Datei beginnt mit einem 6-Byte-Header, dann folgt pro Bild ein 16-Byte-Verzeichniseintrag. Das Base64 jeder ICO beginnt daher mit AAABAA, den Bytes 00 00 01 00. So sieht Hex-Dump anzeigen für ein Icon mit drei Größen aus:

00000000  00 00 01 00 03 00 10 10  00 00 00 00 20 00 56 00  |............ .V.|
00000010  00 00 36 00 00 00 20 20  00 00 00 00 20 00 6b 00  |..6...  .... .k.|
00000020  00 00 8c 00 00 00 30 30  00 00 00 00 20 00 8c 00  |......00.... ...|
00000030  00 00 f7 00 00 00 89 50  4e 47 0d 0a 1a 0a 00 00  |.......PNG......|
BytesWertBedeutung
00 000reserviert
01 001Typ: 1 = Icon, 2 = Cursor
03 003Anzahl der Bilder
10 1016, 16erstes Bild: Breite und Höhe (00 würde 256 bedeuten)
20 0032Bits pro Pixel
56 00 00 0086Größe der Bilddaten in Bytes
36 00 00 0054wo die Bilddaten beginnen

Die nächsten beiden Einträge beschreiben 32×32 (20 20) und 48×48 (30 30). Bei Offset 54 beginnt das erste Bild, und das .PNG in der Textspalte zeigt, dass es als PNG gespeichert ist.

PNG oder BMP darin

Jedes Bild in einer ICO ist entweder als vollständige PNG-Datei gespeichert oder als Bitmap ohne den üblichen Datei-Header BM. Im zweiten Fall beginnen seine Daten mit 28 00 00 00, und die Höhe in diesem Bitmap-Header ist verdoppelt, weil auf die Farbpixel eine 1-Bit-Transparenzmaske folgt. Große 256×256-Bilder sind meist PNG, da eine unkomprimierte 32-Bit-Bitmap dieser Größe mehr als 256 KB belegt.

Eine ICO-Zeichenkette ist oft viel länger, als das Icon vermuten lässt, weil jede Größe darin steckt und Bitmap-Einträge unkomprimiert sind. Für eine Website ist ein einzelnes 32×32-PNG oder ein SVG-Favicon meist viel kleiner. Favicon in Base64 erklärt, wie Sie diese einbetten.

Die Bilder im Code auflisten und extrahieren

Diese Python-Funktion liest das Verzeichnis und liefert jedes Bild mit Größe und Format:

import base64, struct

def ico_entries(b64: str):
    data = base64.b64decode(b64.split(",", 1)[-1])
    reserved, kind, count = struct.unpack_from("<HHH", data, 0)
    if reserved != 0 or kind not in (1, 2):
        raise ValueError("not an ICO or CUR file")
    for i in range(count):
        w, h, colors, _, _, bpp, size, offset = struct.unpack_from("<BBBBHHII", data, 6 + 16 * i)
        image = data[offset:offset + size]
        fmt = "png" if image.startswith(b"\x89PNG") else "bmp"
        yield {"size": f"{w or 256}x{h or 256}", "bpp": bpp, "bytes": size, "format": fmt, "data": image}

Für das Icon oben liefert sie 16x16, 32x32 und 48x48, alle png. Schreiben Sie entry["data"] eines PNG-Eintrags in eine .png-Datei, haben Sie diese Größe als eigenständiges Bild. Bitmap-Einträge brauchen einen Datei-Header und müssen von der Maske befreit werden, bevor andere Software sie liest; öffnen Sie die ICO für diese also in einem Icon-Editor. Base64 in Python erklärt mehr zum Dekodieren.

Wenn sich das Icon nicht öffnen lässt

  • „Erkannt: PNG, erwartet: ICO.“ Viele „Favicon“-Zeichenketten sind einfache PNGs. Browser akzeptieren ein PNG-Favicon unter jedem Namen, Software, die eine echte Icon-Datei braucht, etwa Windows-Programmressourcen, akzeptiert aber kein umbenanntes PNG. Nutzen Sie Als .png herunterladen und behalten Sie es als PNG.
  • „Ihr Browser kann ICO-Bilder nicht anzeigen.“ Der Browser konnte kein Bild in der Datei zeichnen, meist weil ein Eintrag beschädigt oder abgeschnitten ist oder ein ungewöhnliches Bitmap-Format nutzt. Der Download enthält trotzdem genau die Daten; öffnen Sie sie in einem Icon-Editor, um zu sehen, welcher Eintrag scheitert.
  • Das Favicon ändert sich im Browser nicht. Browser legen Favicons in einem eigenen Cache ab, prüfen Sie das neue Icon also in einem privaten Fenster.

Häufige Fragen

Wie viele Größen stecken in meiner ICO-Datei?

Öffnen Sie Hex-Dump anzeigen und lesen Sie die Bytes 4 und 5: Sie enthalten die Anzahl der Bilder als Little-Endian-Zahl, 03 00 bedeutet also drei Bilder. Danach hat jedes Bild einen 16-Byte-Eintrag mit Breite, Höhe und Position in der Datei.

Warum zeigt die Vorschau nur eine Größe?

Der Browser wählt ein Bild aus dem Icon zum Zeichnen aus, und die Zeile mit den Abmessungen nennt dieses eine. Die anderen Größen sind weiterhin in der Datei und werden mit ihr gespeichert.

Kann ich ein einzelnes PNG aus einer ICO extrahieren?

Ja, wenn dieser Eintrag als PNG gespeichert ist, was bei 256×256-Icons üblich ist. Seine Bytes sind eine vollständige PNG-Datei; das Python-Snippet auf dieser Seite speichert jedes einzelne.

Funktioniert das auch für Windows-Cursor-Dateien?

Ja. Eine .cur-Datei nutzt denselben Container mit Typ 2 statt 1, ihr Base64 beginnt daher mit AAACAA. Sie wird als CUR erkannt und mit der Endung .cur gespeichert.