Che cos'è il formato di file BMP?
.bmp è un file di immagine che memorizza grafica raster, sviluppato da Microsoft (insieme a IBM, per OS/2). Il formato BMP è quasi sempre non compresso, quindi le immagini ad alta risoluzione salvate come file .bmp sono più grandi dei file salvati in formati comparabili come PNG o JPEG. Esiste una compressione opzionale run-length encoding (RLE), ma è usata raramente.
Il formato BMP è in grado di memorizzare immagini in varie profondità di colore:
- Monocromatico a 1 bit (solo bianco e nero),
- 4 bit (16 colori distinti),
- 8 bit (256 colori distinti),
- Colore a 16 bit, 24 bit o 32 bit (quest'ultimo aggiunge un canale alfa per la trasparenza).
Struttura del file
Ogni file .bmp ha una sezione header che contiene informazioni sulla profondità del colore, la dimensione del file e l'offset dei dati dei pixel, seguita da un array che rappresenta i pixel della bitmap. Le righe sono memorizzate dal basso verso l'alto (bottom-up) e allineate a limiti di 4 byte. Esistono quattro versioni di header DIB - BITMAPCOREHEADER, BITMAPINFOHEADER, BITMAPV4HEADER e BITMAPV5HEADER - l'ultima delle quali aggiunge profili colore ICC incorporati.
Sicurezza e incolumità
RISCHIO: LOWIl formato BMP contiene semplici dati di pixel senza script o macro, quindi il formato stesso è a basso rischio. Le uniche avvertenze: storicamente alcuni bug nelle librerie di immagini permettevano a header BMP malformati (dimensioni dichiarate enormi, sequenze RLE errate) di mandare in crash o in overflow i parser, quindi tieni aggiornato il tuo visualizzatore; ed evita i siti di «convertitori BMP gratuiti» pieni di pubblicità - usa invece IrfanView, GIMP, ImageMagick o Squoosh.
Dettagli del formato
in sintesiProgrammi che aprono file BMP
Dettagli tecnici
specifiche approfondite| Tipo MIME | image/bmp (anche image/x-bmp, image/x-ms-bmp) |
| Magic bytes | 42 4D («BM») all'offset byte 0 |
| Ordine dei byte | Little-endian |
| Compressione | Tipicamente nessuna (BI_RGB); opzionale BI_RLE8 e BI_RLE4 run-length encoding; rari BI_BITFIELDS, BI_JPEG, BI_PNG |
| Profondità di colore supportate | 1, 4, 8, 16, 24 o 32 bit per pixel |
| Memorizzazione righe pixel | Bottom-up per impostazione predefinita (ultima riga per prima); un valore di altezza negativo segnala top-down; ogni riga è allineata a un limite di 4 byte |
| Header del file | BITMAPFILEHEADER - 14 byte; contiene la firma BM, la dimensione totale del file e l'offset dei dati dei pixel |
| Versioni header DIB | BITMAPCOREHEADER (12 byte), BITMAPINFOHEADER (40 byte), BITMAPV4HEADER (108 byte), BITMAPV5HEADER (124 byte); versione identificata dal DWORD all'offset 0x0E |
| Canale alfa | Supportato in modalità a 32 bit tramite BITMAPV4HEADER e BITMAPV5HEADER; non disponibile nelle versioni di header a 24 bit o precedenti |
| Dimensioni massime immagine | Fino a circa 2,1 miliardi di pixel per lato (int a 32 bit con segno in BITMAPINFOHEADER); BITMAPCOREHEADER limita a 65.535 px per lato |
| Tavolozza colori | Opzionale; fino a 256 voci RGBQUAD utilizzate per le modalità indicizzate (1, 4, 8 bpp) |
| Profilo colore ICC | Supporto per profilo ICC incorporato aggiunto in BITMAPV5HEADER (Windows 98/2000); gli header precedenti non trasportano metadati sullo spazio colore |
| Estensione alternativa | .dib (Device Independent Bitmap) - formato identico, usato in modo intercambiabile su Windows |
| Varianti OS/2 | I file OS/2 Bitmap Array utilizzano firme magic alternative: BA, CI, CP, IC, PT |
| Rilasciato | 1985-1990 (Windows 1.0/2.0; OS/2 1.x); BITMAPINFOHEADER form with Windows 3.0 (1990) |
| Ultima versione | BITMAPV5HEADER (Windows 98/2000, 1998) - adds ICC color profiles |
| Standard aperto | Sì · royalty-free |
| Specifica | learn.microsoft.com |
Conversioni BMP
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file BMP.