Zo gebruik je het
- Sleep een .bmp-bestand naar het sleepvak, klik om er een te kiezen of plak een afbeelding.
- Kies bij Converteren naar het formaat PNG voor een verliesvrij en veel kleiner resultaat, of behoud BMP als het ontvangende systeem dat vereist.
- Vergelijk de originele grootte met de gecodeerde grootte om de besparing te zien.
- Kopieer of download het resultaat als data-URI, kale Base64, img-tag, CSS-regel of Markdown-afbeelding.
Wat is een BMP-bestand?
BMP is het apparaatonafhankelijke bitmapformaat van Windows. Het slaat pixels rij voor rij op, bijna altijd zonder compressie (voor afbeeldingen van 4 en 8 bits bestaat een eenvoudige run-length-modus). Het MIME-type is image/bmp, al melden sommige systemen image/x-ms-bmp, en de Base64-uitvoer begint met Qk, de gecodeerde letters BM.
Zonder compressie volgt de grootte rechtstreeks uit de afmetingen. Een 24-bits afbeelding van 800 bij 600 pixels neemt ongeveer 1,4 MB in beslag, en de Base64 ervan is bijna 1,9 MB tekst.
Converteer naar PNG vóór het coderen
PNG is ook verliesvrij, dus een typische 24-bits bitmap die naar PNG wordt geconverteerd, behoudt zijn pixels exact terwijl het bestand kleiner wordt, vaak meerdere keren zo klein en bij screenshots en vlakke graphics nog veel meer. Voor foto's die als BMP zijn opgeslagen, levert JPEG of WebP met een goede kwaliteit een nog kortere string op. Dankzij de originele en gecodeerde grootte die bij elke afbeelding worden getoond, zie je het verschil meteen.
Wanneer je de originele BMP behoudt
Sommige ontvangers verwachten een echte bitmap: oudere Windows-software, label- en bonprinters, kleine displays die door microcontrollers worden aangestuurd, of testfixtures die byte voor byte met een bestand moeten overeenkomen. Laat in die gevallen conversie uit; de Base64-uitvoer is dan een exacte kopie van het bestand. Alle grote browsers kunnen afbeeldingen als data:image/bmp weergeven, maar voor webpagina's en e-mail is PNG het betere formaat.
Dezelfde conversie in een script, met Python en 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()
Veelgestelde vragen
Waarom is mijn BMP-Base64-string zo lang?
BMP slaat elke pixel zonder compressie op, en Base64 voegt daar nog een derde aan toe. Eerst converteren naar PNG maakt de string meestal drastisch korter zonder dat er details verloren gaan.
Gaat er kwaliteit verloren als ik BMP naar PNG converteer?
Nee. PNG is een verliesvrij formaat, dus de pixels blijven hetzelfde. Alleen de manier waarop ze worden opgeslagen verandert.
Kunnen browsers een data:image/bmp-URI weergeven?
Ja, Chrome, Edge, Firefox en Safari tonen allemaal BMP. E-mailprogramma's en veel onlineplatforms gaan er minder betrouwbaar mee om, dus daar is PNG de veiligere keuze.
Ondersteunt BMP transparantie?
Een 32-bits BMP kan een alfakanaal bevatten, maar programma's en browsers gaan daar niet consequent mee om. Heb je transparantie nodig, converteer dan naar PNG of WebP.