Base64-Bildkodierung wandelt binäre Bilddaten in eine ASCII-Zeichenkette um, die direkt in HTML, CSS oder JSON eingebettet werden kann, ohne auf eine externe Datei zu verweisen. Das Ergebnis ist ein Data URI — eine eigenständige Zeichenkette, die mit data:image/png;base64, beginnt, gefolgt von den Base64-kodierten Bytes des Bildes. Browser behandeln Data URIs genauso wie externe Bild-URLs: Sie dekodieren die Base64-Nutzlast und rendern das Bild inline.
Die Technik ist in RFC 2397 (Data-URI-Schema) und RFC 4648 (Base64-Kodierung) definiert. Bei der Base64-Kodierung eines Bildes werden jeweils 3 Bytes binärer Pixeldaten in 4 ASCII-Zeichen umgewandelt, was die Datenmenge um etwa 33 % erhöht. Trotz dieses Mehraufwands entfällt durch eingebettete Bilder eine HTTP-Anfrage pro Asset — ein relevanter Vorteil bei kleinen Bildern (Icons, Logos, 1×1-Tracking-Pixel), bei denen die Round-Trip-Latenz einer separaten Anfrage die zusätzlichen Bytes überwiegt.
Data URIs werden von allen modernen Browsern, E-Mail-Clients (mit Einschränkungen) und in jedem Kontext unterstützt, der Standard-URI-Syntax akzeptiert. Sie werden häufig in Single-Page-Applikationen, HTML-E-Mail-Vorlagen, SVG-Sprites und CSS-background-image-Deklarationen eingesetzt, wo die Reduzierung der Netzwerkanfragen die wahrgenommene Ladezeit verbessert.
Warum diesen Base64 Image Encoder verwenden?
Dieses Tool wandelt jedes Bild direkt im Browser in einen einsatzbereiten Data URI um — kein Upload, kein Server, kein Konto erforderlich.
⚡
Sofortige Konvertierung
Bild per Drag-and-Drop ablegen oder Datei auswählen — der vollständige Data URI erscheint sofort. Keine Wartezeit für Serververarbeitung: die FileReader-API erledigt alles lokal.
🔒
Verarbeitung ohne Datenweitergabe
Ihre Bilder verlassen das Gerät nicht. Die Kodierung läuft vollständig im Browser mit der nativen Methode FileReader.readAsDataURL(). Es werden keine Daten an einen Server übertragen.
🌐
Alle gängigen Formate unterstützt
Akzeptiert PNG, JPEG, SVG, WebP, GIF, ICO, BMP und alle weiteren Bildformate, die Ihr Browser unterstützt. Der MIME-Typ wird automatisch aus der Datei erkannt.
📦
Ausgabe direkt einsatzbereit
Die Ausgabe ist ein vollständiger Data-URI-String — direkt in ein HTML-img-src, eine CSS-url()-Deklaration oder eine JSON-Nutzlast einfügen, ohne manuelle Nachbearbeitung.
Anwendungsfälle für Base64-Bildkodierung
Frontend-Entwicklung
Kleine Icons und UI-Assets direkt in HTML oder CSS einbetten, um HTTP-Anfragen zu vermeiden. Das verringert die Waterfall-Latenz für kritische Above-the-Fold-Bilder und verbessert den Largest Contentful Paint (LCP)-Wert.
HTML-E-Mail-Vorlagen
Viele E-Mail-Clients blockieren externe Bilder standardmäßig. Inline-Base64-Bilder werden sofort ohne Aufforderung zum Laden von Bildern gerendert, was die Öffnungsraten und visuelle Konsistenz verbessert.
Single-Page-Applikationen
Kleine Assets als Data URIs in JavaScript oder CSS bündeln, um die Gesamtzahl der Netzwerkanfragen zu reduzieren. Webpack und Vite unterstützen beide das automatische Base64-Inlining für Assets unterhalb eines konfigurierbaren Schwellenwerts.
API- und JSON-Nutzlasten
Nutzeravatare, Signaturen oder Vorschaubilder als Base64-Zeichenketten kodieren, um sie direkt in JSON-API-Antworten einzubinden. Dadurch entfällt die Notwendigkeit eines separaten Datei-Hosting-Endpunkts für kleine Bilder.
Dokumentation und Markdown
Diagramme oder Screenshots als Data URIs in Markdown-Dateien oder README-Dokumente einbetten. Die Bilder reisen mit dem Dokument und werden korrekt ohne externes Hosting angezeigt.
Tests und Prototypen
Base64-Data-URIs als Platzhalterbilder in Test-Fixtures, Storybook-Stories oder Prototyp-HTML-Dateien verwenden. Kein statischer Dateiserver nötig, keine Verwaltung von Bild-Assets in der frühen Entwicklungsphase.
Struktur eines Data URI
Ein Data URI kodiert Bildformat und Binärinhalt in einer einzigen Zeichenkette. Das Verständnis seiner Struktur hilft beim programmatischen Erstellen oder Parsen von Data URIs:
Bestandteil
Beschreibung
data:
URI scheme identifier
image/png
MIME type of the image
;base64,
Encoding declaration
iVBORw0KGgo...
Base64-encoded binary data
Bildformat-Vergleich für Base64-Kodierung
Die Wahl des Bildformats beeinflusst die Base64-Ausgabegröße, Browser-Unterstützung und Darstellungseigenschaften. Das Format wählen, das am besten zum Inhalt passt:
Format
MIME-Typ
Transparenz
Am besten für
PNG
image/png
Yes
Screenshots, icons, UI elements
JPEG
image/jpeg
No
Photos, gradients, large images
SVG
image/svg+xml
Yes
Logos, icons, scalable graphics
WebP
image/webp
Yes
Modern web images, smaller files
GIF
image/gif
Yes (1-bit)
Simple animations, small icons
ICO
image/x-icon
Yes
Favicons
Codebeispiele
Bilder in gängigen Sprachen und Umgebungen in Base64-Data-URIs umwandeln:
JavaScript (browser)
// Convert a File object to a Base64 data URI
function fileToDataUri(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = () => resolve(reader.result)
reader.onerror = reject
reader.readAsDataURL(file)
// reader.result → "data:image/png;base64,iVBORw0KGgo..."
})
}
// Convert a canvas element to a data URI
const dataUri = canvas.toDataURL('image/png')
// → "data:image/png;base64,iVBORw0KGgo..."
// Convert with quality parameter (JPEG/WebP only)
const jpegUri = canvas.toDataURL('image/jpeg', 0.8)
// → "data:image/jpeg;base64,/9j/4AAQ..."
Python
import base64
# Read an image file and encode it to a data URI
with open('logo.png', 'rb') as f:
encoded = base64.b64encode(f.read()).decode('ascii')
data_uri = f'data:image/png;base64,{encoded}'
# → "data:image/png;base64,iVBORw0KGgo..."
# Detect MIME type automatically
import mimetypes
mime, _ = mimetypes.guess_type('photo.jpg')
# mime → "image/jpeg"
with open('photo.jpg', 'rb') as f:
b64 = base64.b64encode(f.read()).decode('ascii')
data_uri = f'data:{mime};base64,{b64}'
Node.js
import { readFileSync } from 'fs'
import { lookup } from 'mime-types'
// Read file and encode to data URI
const buffer = readFileSync('icon.png')
const base64 = buffer.toString('base64')
const mime = lookup('icon.png') // → "image/png"
const dataUri = `data:${mime};base64,${base64}`
// → "data:image/png;base64,iVBORw0KGgo..."
// From a Buffer received via HTTP/API
function bufferToDataUri(buf, mimeType) {
return `data:${mimeType};base64,${buf.toString('base64')}`
}
CLI (bash)
# Encode an image to Base64 (macOS)
base64 -i logo.png | tr -d '\n'
# Encode an image to a full data URI (Linux)
echo -n "data:image/png;base64,$(base64 -w 0 logo.png)"
# Encode and copy to clipboard (macOS)
echo -n "data:image/png;base64,$(base64 -i logo.png | tr -d '\n')" | pbcopy
# Detect MIME type and encode (Linux, requires file command)
MIME=$(file -b --mime-type image.webp)
echo -n "data:$MIME;base64,$(base64 -w 0 image.webp)"
Häufig gestellte Fragen
Welche maximale Bildgröße ist für Base64-Kodierung geeignet?
Die Base64-Spezifikation selbst legt kein festes Limit fest. Die Data-URI-Unterstützung der Browser variiert: die meisten modernen Browser verarbeiten Data URIs bis zu mehreren Megabyte. Da Base64-Kodierung die Größe um 33 % erhöht, wird aus einem 1-MB-Bild etwa 1,33 MB Text. Für Bilder größer als 10–20 KB ist die Auslieferung als separate Dateien mit korrektem Caching effizienter.
Reduziert Base64-Kodierung die Bildqualität?
Nein. Base64 ist eine verlustfreie Kodierung — sie wandelt Binärdaten in Text um, ohne den Inhalt zu verändern. Die dekodieren Daten sind bytegenau identisch mit der Originaldatei. Qualitätsverluste entstehen durch das Bildformat selbst (z. B. JPEG-Komprimierung), nicht durch die Base64-Kodierung.
Warum ist die Base64-Ausgabe größer als das Originalbild?
Base64 repräsentiert 3 Bytes Binärdaten mit 4 ASCII-Zeichen, was einer Größenzunahme von 33 % entspricht. Ein Data URI fügt außerdem ein Präfix hinzu (z. B. data:image/png;base64,) von etwa 25–30 Zeichen. Für kleine Bilder (unter 2–5 KB) wird dieser Mehraufwand durch den Wegfall einer HTTP-Anfrage ausgeglichen. Bei größeren Bildern machen externe Dateien mehr Sinn.
Kann ich Base64-Bilder in CSS background-image verwenden?
Ja. Den Data URI als Wert der url()-Funktion verwenden: background-image: url('data:image/png;base64,...'). Das funktioniert in allen modernen Browsern. Am wirkungsvollsten ist es für kleine, häufig verwendete Hintergrundmuster oder Icons, bei denen der Verzicht auf eine HTTP-Anfrage den etwas größeren CSS-Umfang rechtfertigt.
Ist Base64-Bildkodierung für sensible Bilder sicher?
Base64 ist eine Kodierung, keine Verschlüsselung. Jeder, der den Data URI sieht, kann ihn zurück in das Originalbild dekodieren. Verlassen Sie sich nicht auf Base64 zum Schutz vertraulicher Bilder. Dieses Tool verarbeitet Bilder vollständig im Browser — es werden keine Daten an einen Server gesendet — aber der resultierende Data URI ist Klartext, der für jeden mit Zugriff auf den HTML- oder CSS-Quellcode lesbar ist.
Wie konvertiere ich einen Base64-Data-URI zurück in eine Bilddatei?
In JavaScript fetch() mit dem Data URI verwenden und blob() auf die Response aufrufen, dann einen Download-Link erstellen. In Python die Zeichenkette am Komma teilen, den Base64-Teil mit base64.b64decode() dekodieren und die Bytes in eine Datei schreiben. Sie können auch das Base64 Image Decoder-Tool auf dieser Website verwenden.
Soll ich alle Bilder auf meiner Website als Base64 kodieren?
Nein. Base64-Inlining ist vorteilhaft für kleine Bilder (Icons, Logos, 1×1-Pixel), bei denen der HTTP-Anfrage-Overhead die 33-%-Größenerhöhung überwiegt. Für größere Bilder externe Dateien mit korrekten Cache-Headern verwenden — der Browser kann sie unabhängig cachen und parallel laden. Ein verbreiteter Schwellenwert ist 2–8 KB: Bilder darunter profitieren vom Inlining, größere Bilder sollten als externe Dateien ausgeliefert werden.