So wandeln Sie ein JPG in Base64 um
- Legen Sie eine
.jpg- oder.jpeg-Datei ab, wählen Sie sie über die Dateiauswahl oder fügen Sie ein kopiertes Bild mit Strg+V ein. - Bei Fotos direkt von Kamera oder Handy setzen Sie Max. Breite (zum Beispiel 1200) und passen die Qualität an. Voreingestellt sind 85 %.
- Aktivieren Sie Metadaten entfernen (EXIF), wenn das Foto geteilt oder veröffentlicht wird.
- Wählen Sie Ausgabe als: Data-URI ist voreingestellt, reines Base64 wollen die meisten APIs. Dann Ausgabe kopieren.
Die Vorschau zeigt die Pixelabmessungen und nach dem Neukodieren die neue Dateigröße. So können Sie einige Einstellungen ausprobieren und zusehen, wie die Zahl sinkt.
Was im Base64 eines JPGs steckt
Alle JPEG-Dateien beginnen mit dem SOI-Marker FF D8 FF und damit in Base64 alle mit /9j/. Die folgenden Zeichen verraten, welcher Header folgt:
| Datei beginnt mit | Base64 beginnt mit | Typische Quelle |
|---|---|---|
FF D8 FF E0 + JFIF | /9j/4AAQSkZJRg | Bildbearbeitung, Web-Exporte, die meisten Konverter |
FF D8 FF E1 + Exif | /9j/4 und danach wechselnde Zeichen | Kameras und Handys (EXIF-Block zuerst) |
FF D8 FF DB | /9j/2w | bereinigte oder minimale Encoder |
Ein Kamera-JPEG trägt einen EXIF-Block mit Gerätemodell, Aufnahmezeit, Ausrichtung und, falls der Standort aktiviert war, GPS-Koordinaten. Base64 verbirgt nichts davon. Wer die Zeichenkette mit Base64 in JPG dekodiert, erhält die Originaldatei mit allen Metadaten.
Fotos vor dem Kodieren verkleinern
Ein aktuelles Handyfoto hat mehrere Megabyte. Als Base64 wächst es um ein weiteres Drittel, was für einen JSON-Request, eine CSS-Datei oder eine HTML-E-Mail zu viel ist und überall sonst langsam.
Zwei Einstellungen erledigen den Großteil der Arbeit:
- Max. Breite legt die maximale Breite in Pixeln fest. Halbiert man die Breite, sinkt die Pixelzahl auf ein Viertel.
- Qualität steuert die JPEG-Kompression. Sie wirkt immer dann, wenn das Foto neu kodiert wird, also wenn Max. Breite, ein Format bei Umwandeln in oder Metadaten entfernen (EXIF) gesetzt ist. Zwischen 75 % und 85 % ist der Unterschied auf einem Foto kaum zu sehen, während die Datei viel kleiner wird als bei 95–100 %.
Ein JPEG neu zu kodieren kostet immer ein wenig Detail, weil es dekodiert und erneut komprimiert wird. Tun Sie das einmal, ausgehend vom Original, und schicken Sie das Ergebnis nicht ein zweites Mal durch den Konverter.
JPEG kennt keine Transparenz. Wandeln Sie ein PNG oder WebP mit transparentem Hintergrund in JPEG um, werden die transparenten Bereiche weiß. Bleiben Sie bei PNG oder WebP, wenn Sie den Alphakanal brauchen.
Wo JPG-Base64 verwendet wird
- Foto-Uploads über JSON-APIs, auch an KI-Vision-Modelle, die Bilder beschreiben oder analysieren. Viele davon verkleinern große Bilder auf ihrer Seite, ein kleineres JPEG beschleunigt also die Anfrage ohne sichtbaren Verlust.
- Eingebettete Vorschaubilder und Platzhalter in HTML, etwa eine verschwommene Vorschau mit 20 Pixeln Breite, die angezeigt wird, während das volle Bild lädt.
- Dokumente in einer Datei, zum Beispiel ein HTML-Bericht mit einigen eingebetteten Fotos.
Für große Fotos auf einer Website ist eine normale Bilddatei weiterhin besser: Sie kann gecacht, per Lazy Loading geladen und mit srcset in mehreren Größen ausgeliefert werden.
Skalieren und kodieren in Python
Pillow skaliert das Foto und kodiert es in wenigen Zeilen neu, das Base64 übernimmt die Standardbibliothek. Pillow übernimmt EXIF nur dann in die neue Datei, wenn Sie es ausdrücklich übergeben, dieser Code entfernt also auch die Metadaten:
import base64, io
from PIL import Image
with Image.open("photo.jpg") as im:
im.thumbnail((1024, 1024))
buf = io.BytesIO()
im.save(buf, "JPEG", quality=80)
b64 = base64.b64encode(buf.getvalue()).decode("ascii")
Mehr zum Lesen von Dateien und zum Streaming unter Base64 in Python.
Häufige Probleme
- Das Foto erscheint gedreht. Viele Handys speichern die Pixel in der Ausrichtung des Sensors und legen die Drehung in einem EXIF-Tag ab. Aktuelle Browser werten dieses Tag aus, und wenn das Tool ein Foto neu zeichnet, behält es die sichtbare Ausrichtung bei. Software, die EXIF ignoriert, kann die rohe Ausrichtung zeigen.
- Das Base64 ist länger als erwartet. Prüfen Sie die Eingabegröße in der Anzeige. Ein „kleines“ Foto aus einem Messenger kann trotzdem 3000 Pixel breit sein.
- Eine API lehnt das Bild ab. Klären Sie, ob sie das Präfix
data:image/jpeg;base64,oder reines Base64 erwartet, und senden Sie als Typimage/jpeg, nichtimage/jpg.
Häufige Fragen
Heißt es image/jpg oder image/jpeg in einer Data-URI?
image/jpeg. image/jpg ist kein registrierter Typ. Browser zeigen das Bild trotzdem an, weil sie die Bildbytes selbst erkennen, aber APIs, die den Medientyp prüfen, lehnen es womöglich ab.
Enthält ein JPG in Base64 noch meinen GPS-Standort?
Ja, wenn das Original ihn enthielt. Base64 kopiert jedes Byte, EXIF eingeschlossen. Aktivieren Sie Metadaten entfernen (EXIF), um die Daten zu entfernen; das Foto wird dann vor dem Kodieren ohne Metadaten neu gezeichnet.
Warum beginnt das Base64 meines JPGs mit /9j/?
Jedes JPEG beginnt mit den Bytes FF D8 FF, und diese drei Bytes ergeben kodiert genau /9j/. Eine Zeichenkette, die anders beginnt, ist kein JPEG, egal was der Dateiname sagt.
Wie mache ich das Base64 eines Fotos kürzer?
Verringern Sie vor dem Kodieren Pixelzahl und Qualität. Eine Max. Breite, die zur Anzeigegröße passt, und eine Qualität um 75–85 % verkleinern ein Handyfoto weit stärker als alles, was Sie am Base64 selbst tun können.