Come si usa
- Trascina un file .bmp nell’area di rilascio, fai clic per sceglierne uno oppure incolla un’immagine.
- Scegli PNG in Converti in per un risultato lossless e molto più piccolo, oppure lascia Mantieni originale se il sistema di destinazione richiede un BMP.
- Confronta la dimensione originale con quella codificata per vedere il risparmio.
- Copia o scarica il risultato come data URI, Base64 puro, tag img, regola CSS o immagine Markdown.
Che cos’è un file BMP?
BMP è il formato bitmap indipendente dal dispositivo di Windows. Memorizza i pixel riga per riga, quasi sempre senza compressione (esiste una semplice modalità run-length per le immagini a 4 e 8 bit). Il tipo MIME è image/bmp, anche se alcuni sistemi indicano image/x-ms-bmp, e l’output Base64 inizia con Qk, cioè le lettere BM codificate.
Senza compressione, la dimensione dipende direttamente dalle dimensioni in pixel. Un’immagine a 24 bit di 800 per 600 pixel richiede circa 1,4 MB e il suo Base64 sfiora 1,9 MB di testo.
Converti in PNG prima della codifica
Anche PNG è lossless, quindi una tipica bitmap a 24 bit convertita in PNG conserva esattamente i suoi pixel mentre il file si riduce, spesso di diverse volte e molto di più nel caso di screenshot e grafica a tinte piatte. Per le foto salvate come BMP, JPEG o WebP con una buona qualità danno una stringa ancora più corta. La dimensione originale e quella codificata, mostrate per ogni immagine, rendono evidente la differenza.
Quando mantenere il BMP originale
Alcuni destinatari si aspettano una vera bitmap: vecchi software Windows, stampanti di etichette e scontrini, piccoli display pilotati da microcontrollori o fixture di test che devono corrispondere a un file byte per byte. In questi casi non attivare la conversione: l’output Base64 sarà una copia esatta del file. Tutti i principali browser possono visualizzare immagini data:image/bmp, ma per pagine web ed email PNG è il formato migliore.
La stessa conversione in uno script, con Python e 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()
Domande frequenti
Perché la stringa Base64 del mio BMP è così lunga?
BMP memorizza ogni pixel senza compressione e Base64 aggiunge un ulteriore terzo. Convertire prima in PNG di solito accorcia drasticamente la stringa senza perdere alcun dettaglio.
La conversione da BMP a PNG riduce la qualità?
No. PNG è un formato lossless, quindi i pixel restano gli stessi. Cambia solo il modo in cui vengono memorizzati.
I browser possono visualizzare un URI data:image/bmp?
Sì, Chrome, Edge, Firefox e Safari visualizzano tutti i BMP. I client di posta e molte piattaforme online li gestiscono in modo meno affidabile, quindi lì PNG è la scelta più sicura.
BMP supporta la trasparenza?
Un BMP a 32 bit può memorizzare un canale alfa, ma programmi e browser lo trattano in modo incoerente. Se ti serve la trasparenza, converti in PNG o WebP.