Anleitung
- Legen Sie eine .bmp-Datei auf dem Ablagebereich ab, klicken Sie darauf, um eine Datei auszuwählen, oder fügen Sie ein Bild ein.
- Wählen Sie unter „Konvertieren in“ PNG als Zielformat für ein verlustfreies und viel kleineres Ergebnis, oder behalten Sie BMP bei, wenn das Zielsystem es verlangt.
- Vergleichen Sie die Originalgröße mit der kodierten Größe, um die Ersparnis zu sehen.
- Kopieren oder laden Sie das Ergebnis als Data-URI, reines Base64, img-Tag, CSS-Regel oder Markdown-Bild herunter.
Was ist eine BMP-Datei?
BMP ist das geräteunabhängige Bitmap-Format von Windows. Es speichert Pixel Zeile für Zeile, fast immer ohne Komprimierung (für 4-Bit- und 8-Bit-Bilder gibt es einen einfachen Lauflängenmodus). Der MIME-Typ ist image/bmp, manche Systeme melden jedoch image/x-ms-bmp, und die Base64-Ausgabe beginnt mit Qk, den kodierten Buchstaben BM.
Ohne Komprimierung ergibt sich die Größe direkt aus den Abmessungen. Ein 24-Bit-Bild mit 800 × 600 Pixeln benötigt etwa 1,4 MB, sein Base64 knapp 1,9 MB Text.
Vor der Kodierung in PNG konvertieren
PNG ist ebenfalls verlustfrei, daher behält eine typische 24-Bit-Bitmap bei der Konvertierung in PNG ihre Pixel exakt bei, während die Datei schrumpft, oft um ein Mehrfaches und bei Screenshots und flächigen Grafiken noch viel stärker. Für Fotos, die als BMP gespeichert wurden, ergibt JPEG oder WebP mit guter Qualität einen noch kürzeren String. Anhand der für jedes Bild angezeigten Original- und kodierten Größe ist der Unterschied leicht zu erkennen.
Wann Sie das Original-BMP behalten sollten
Manche Empfänger erwarten eine echte Bitmap: ältere Windows-Software, Etiketten- und Bondrucker, kleine Displays an Mikrocontrollern oder Testdaten, die Byte für Byte mit einer Datei übereinstimmen müssen. Lassen Sie in diesen Fällen die Konvertierung aus; die Base64-Ausgabe ist dann eine exakte Kopie der Datei. Alle gängigen Browser können data:image/bmp-Bilder anzeigen, für Webseiten und E-Mails ist PNG jedoch das bessere Format.
Dieselbe Konvertierung als Skript mit Python und Pillow:
from PIL import Image
import base64, io
buf = io.BytesIO()
Image.open('scan.bmp').save(buf, 'PNG')
uri = 'data:image/png;base64,' + base64.b64encode(buf.getvalue()).decode()
Häufig gestellte Fragen
Warum ist mein BMP-Base64-String so lang?
BMP speichert jedes Pixel ohne Komprimierung, und Base64 fügt noch ein Drittel hinzu. Eine vorherige Konvertierung in PNG verkürzt den String meist drastisch, ohne Details zu verlieren.
Verliert BMP bei der Konvertierung in PNG an Qualität?
Nein. PNG ist ein verlustfreies Format, die Pixel bleiben also gleich. Nur die Art der Speicherung ändert sich.
Können Browser eine data:image/bmp-URI anzeigen?
Ja, Chrome, Edge, Firefox und Safari zeigen BMP an. E-Mail-Programme und viele Online-Plattformen gehen damit weniger zuverlässig um, dort ist PNG die sicherere Wahl.
Unterstützt BMP Transparenz?
Eine 32-Bit-BMP kann einen Alphakanal speichern, doch Programme und Browser behandeln ihn uneinheitlich. Wenn Sie Transparenz benötigen, konvertieren Sie in PNG oder WebP.