> PNG | encode | data-uri <
// PNG-Bilder zu Base64-Strings und Daten-URIs kodieren — Alpha-Transparenz bleibt erhalten, läuft vollständig in Ihrem Browser
PNG hier ablegen oder klicken zum Auswählen
Klicken zum Durchsuchen von PNG-Dateien
Alpha erhalten
PNG-Alphakanal, Palette und gAMA/tRNS-Chunks werden Byte für Byte kodiert — keine Neukomprimierung, kein Qualitätsverlust.
100 % clientseitig
Ihr PNG verlässt nie den Browser. Die Kodierung erfolgt lokal über FileReader + btoa() — kein Server-Roundtrip.
Kopieren & Einfügen
Erhalten Sie eine standardkonforme data:image/png;base64,…-URI, einsatzbereit für HTML, CSS, E-Mails, JSON-Payloads und Inline-SVGs.
// FAQ — PNG ZU BASE64
F: Was ist PNG-zu-Base64-Kodierung?
A: Sie konvertiert den binären Inhalt einer .png-Datei in einen ASCII-String mithilfe des in RFC 4648 definierten Base64-Alphabets. Der kodierte Text kann direkt in ein HTML-<img>-Tag, eine CSS-background-image-Regel, eine E-Mail-Nachricht, einen JSON-API-Payload oder jeden anderen reinen Textkanal eingefügt werden. Die PNG-Bytes selbst bleiben unverändert — jeder IHDR-, IDAT-, tRNS- und IEND-Chunk wird kodiert und kann exakt wiederhergestellt werden.
F: Wie kodiere ich ein PNG im Browser zu Base64?
A: Ziehen Sie Ihr PNG in die Drop-Zone (oder klicken Sie zum Durchsuchen). Das Tool liest die Datei mit FileReader.readAsDataURL(), was bereits eine direkt einsetzbare data:image/png;base64,…-URI zurückgibt. Wählen Sie Daten-URI, wenn Sie sie direkt in <img src="…"> einfügen möchten, oder Nur Base64-Nutzdaten, falls Ihre API/Datenbank den reinen Base64-Anteil ohne das Präfix data:image/png;base64, erwartet.
F: Geht durch die Kodierung eines PNG zu Base64 Transparenz oder Qualität verloren?
A: Nein. Base64 ist eine reine Binär-zu-Text-Transformation — jedes Byte des ursprünglichen PNGs bleibt erhalten, einschließlich Alphakanal, Palette und Farbprofil (iCCP/sRGB-Chunks). Wenn Sie den String zurückdekodieren, ist die Datei bit-identisch zum Original. Ein SHA-256-Hash des dekodierten PNGs stimmt mit dem Original überein. Deshalb ist Base64 das richtige Werkzeug zum Einbetten von Icons, Logos und Screenshots, bei denen Pixelgenauigkeit zählt.
F: Wie viel größer wird ein PNG nach der Base64-Kodierung?
A: Base64 verwendet 4 Zeichen für je 3 Eingabebytes, sodass der kodierte String ~33 % größer ist als die ursprüngliche PNG-Datei. Die genaue Größe beträgt 4 × ⌈n / 3⌉ Zeichen, wobei n die PNG-Größe in Bytes ist. Ein 10 KB großes PNG wird zu ~13,6 KB Base64-Text. Da HTTP-Kompression (gzip, Brotli) Base64-Text relativ gut verarbeitet, liegt der Overhead über das Netzwerk in der Praxis meist näher bei 10–15 %.
F: Wie sieht ein Base64-kodiertes PNG aus?
A: Jeder PNG-Base64-String beginnt mit iVBORw0KGgo. Dieses Präfix ist die 8-Byte-PNG-Signatur 89 50 4E 47 0D 0A 1A 0A, erneut in Base64 kodiert. Daher ist iVBORw0KGgoAAAANSUhEUg... immer ein PNG, und das Erkennen dieses Präfixes ist eine schnelle visuelle Prüfung, dass Ihre Daten intakt sind. Als Daten-URI umgeschlagen sieht es so aus: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==
F: Wie bette ich ein PNG als Base64 in HTML ein?
A: Fügen Sie die vollständige Daten-URI in das src-Attribut eines <img>-Tags ein: <img src="data:image/png;base64,iVBORw0KGgo…" alt="logo">
Der Browser dekodiert die Base64-Nutzdaten und rendert das PNG exakt so, als wäre es über eine URL geladen worden. Es wird keine zusätzliche HTTP-Anfrage gestellt, was bei kritischen UI-Icons, E-Mail-Signaturen und Offline-First-Apps nützlich ist.
F: Wie verwende ich ein Base64-PNG als CSS-Hintergrund?
A: Verpacken Sie die Daten-URI in die url()-Funktion: .icon { background-image: url('data:image/png;base64,iVBORw0KGgo…'); }
Zur Wiederverwendung speichern Sie sie in einer CSS-Custom-Property: :root { --logo: url('data:image/png;base64,iVBORw0KGgo…'); } .brand { background: var(--logo); }
Inline-Hintergründe eliminieren eine HTTP-Anfrage pro Icon, blähen aber Ihre CSS-Datei auf — verwenden Sie sie daher nur für kleine Icons (< 4 KB).
F: Wie kodiere ich PNG zu Base64 in JavaScript / Node / Python / PHP?
A:
JavaScript (Browser): const uri = await new Promise(r => { const f = new FileReader(); f.onload = () => r(f.result); f.readAsDataURL(pngFile); });
Node.js: fs.readFileSync('logo.png').toString('base64')
Python: import base64; base64.b64encode(open('logo.png','rb').read()).decode()
PHP: base64_encode(file_get_contents('logo.png'))
Go: base64.StdEncoding.EncodeToString(pngBytes)
Ruby: Base64.strict_encode64(File.read('logo.png'))
F: Wann sollte ich ein Base64-PNG statt einer normalen Bilddatei verwenden?
A: Verwenden Sie Base64-PNG-Daten-URIs, wenn:
• das Bild < 4 KB groß ist (um einen HTTP-Roundtrip einzusparen)
• Sie es innerhalb einer HTML-E-Mail einbetten müssen (viele Clients blockieren entfernte Bilder)
• Sie einen einzelnen HTML-Report oder ein Dashboard als Einzeldatei ausliefern
• Sie das Bild in einem JSON-Payload oder einer Datenbankspalte speichern
Bevorzugen Sie eine externe .png-Datei, wenn das Bild groß ist, auf vielen Seiten wiederverwendet wird oder eigenes CDN-Caching benötigt.
F: Funktioniert die Base64-Kodierung mit PNG-Transparenz und Paletten-PNGs?
A: Ja. Da Base64 eine bitgenaue Transformation ist, wird jeder PNG-Farbmodus gleichermaßen unterstützt:
• RGBA / Truecolor + Alpha — 32-Bit-Farbe, volle Transparenz
• Palette (PLTE) + tRNS — indizierte Paletten-PNGs mit 1-Bit-Transparenz
• Graustufen + Alpha — 8-/16-Bit-Graustufen mit Alpha
• 16-Bit-Deep-Color-PNGs — HDR-artige PNGs, verwendet in medizinischer Bildgebung und wissenschaftlicher Visualisierung
All diese laufen sauber durch den Base64-Round-Trip und werden in Browsern, die PNG verstehen, korrekt angezeigt.
F: Ist ein Base64-kodiertes PNG verschlüsselt oder privat?
A: Nein. Base64 ist eine Kodierung, keine Verschlüsselung. Jeder, der den String lesen kann, kann ihn in Millisekunden zurück zum ursprünglichen PNG dekodieren. Enthält ein Screenshot ein Passwort, ein API-Token oder persönliche Informationen, schützt die Base64-Kodierung sie nicht — verwenden Sie eine echte Verschlüsselungsschicht (AES-GCM, age, PGP) über der Base64-Ausgabe, oder übertragen Sie das Bild via TLS an einen Server, der Zugriffskontrollen anwendet.
F: Wie groß darf das PNG hier maximal sein, um es zu kodieren?
A: Es gibt keine künstliche Obergrenze. Da die Kodierung lokal läuft, ist das Limit der Speicher Ihres Browsers — typischerweise 100 MB+ auf dem Desktop und 40–60 MB auf Mobilgeräten. Für sehr große PNGs (hochauflösende medizinische oder Satellitenbilder) lesen wir die Datei in Chunks und rufen btoa() für jeden Chunk auf, damit der Hauptthread reaktionsfähig bleibt. Ist Ihr Bild größer als ~100 MB, ziehen Sie in Betracht, es direkt aus einem serverseitigen Encoder zu streamen, statt es in den Browser zu laden.
F: PNG zu Base64 vs. JPG zu Base64 — was sollte ich verwenden?
A: Verwenden Sie PNG → Base64 für Logos, UI-Icons, Screenshots, Diagramme und alles mit Transparenz oder scharfen Kanten (Text, Diagramme). PNG ist verlustfrei und alpha-fähig. Verwenden Sie JPG → Base64 für Fotografien oder Bilder mit vielen Farben, bei denen verlustbehaftete Kompression akzeptabel ist. JPEG-Dateien sind typischerweise 5- bis 20-mal kleiner als PNG für Fotos, sodass die Base64-Nutzdaten deutlich kürzer sind. Als Faustregel: Stammt das Bild aus einer Kamera oder enthält fotografische Farbverläufe, nehmen Sie JPG; andernfalls PNG.