Il formato BMP

Il formato BMP è uno dei formati più semplici sviluppato congiuntamente da Microsoft e IBM, motivo per cui è particolarmente diffuso sulle piattaforme Windows e OS/2.

Il formato BMP

Un file BMP è un file bitmap, cioè un file di immagine grafica che immagazzina i pixel sotto forma di tabella di punti e che gestisce i colori sia in true color sia attraverso una paletta indicizzata. Il formato BMP è stato studiato in maniera tale da ottenere un bitmap indipendente dalla periferica di visualizzazione (DIB, Device indipendent bitmap).

La struttura di un file bitmap è la seguente: intestazione del file (in inglese file header); intestazione del bitmap (in inglese bitmap information header, detto anche information header); paletta (opzionale); corpo dell'immagine.

Intestazione del file

Il titolo del file fornice delle informazioni sul tipo di file (Bitmap), la sua dimensione e indica dove cominciano le informazioni riguardanti l'immagine propriamente detta. Il titolo è composto da quattro campi. La firma (su due byte), indica che si tratta di un file BMP attraverso i suoi due caratteri: BM, 424D in esadecimale, indica che si tratta di un Bitmap Windows; BA indica che si tratta di un Bitmap OS/2; CI indica che si tratta di un'icona di colore OS/2; CP indica che si tratta di un puntatore di colore OS/2; IC indica che si tratta di un'icona OS/2; PT indica che si tratta di un puntatore OS/2. La dimensione totale del file in byte (codificato a 4 byte); un campo riservato (su 4 byte); l'offset dell'immagine (su 4 Byte) , cioè l'indirizzo relativo all'inizio delle informazioni riguardanti l'immagine rispetto all'inizio del file.

Intestazione del bitmap

L'intestazione dell'immagine fornisce delle informazioni sull'immagine, soprattutto le sue dimensioni e i suoi colori. L'intestazione è composta da quattro campi: la dimensione dell'intestazione dell'immagine in byte (codificata a 4 byte). I valori esadecimali seguenti sono possibili secondo il tipo di formato BMP 28 per Windows 3.1x, 95, NT; 0C per OS/2 1.x; F0 per OS/2 2.x.

La larghezza dell'immagine (a 4 byte), cioè il numero di pixel orizzontalmente (in inglese width); l'altezza dell'immagine (a 4 byte), cioè il numero di pixel verticalmente (in inglese height); il numero di piani (a 2 byte). Questo valore vale sempre 1; la profondità di codifica del colore (su 2 byte), cioè il numero di bit usati per codificare il colore. Questo valore può essere uguale a 1, 4, 8, 16, 24 o 32; il metodo di compressione (a 4 byte). Questo valore vale 0 quando l'immagine non è compressa, oppure 1, 2 o 3 secondo il tipo di compressione usata:

1 per codifica RLE di 8 bit per pixel;

2 per codifica RLE da 4 bit per pixel;

3 per codifica bitfields, significa che il colore è codificato con una tripla maschera rappresentata dalla paletta.

La dimensione totale dell'immagine in byte (a 4 byte); la risoluzione orizzontale (a 4 byte), cioè il numero di pixel per metro orizzontale; la risoluzione verticale (su 4 byte), cioè il numero di pixel per metro verticale; il numero di colori della paletta (su 4 byte); il numero di colori importanti della paletta (su 4 byte). Questo campo può essere uguale a 0 quando ogni colore ha la sua importanza.

Paletta dell'immagine

La paletta è opzionale. Quando si definisce una paletta, essa contiene successivamente 4 byte per ognuna delle sue entrate rappresentanti: la componente blu (su un byte); la componente verde (su un byte); la componente rossa (su un byte); un campo riservato (su un byte).

Codifica dell'immagine

La codifica dell'immagine si effettua scrivendo successivamente i bit corrispondenti ad ogni pixel, linea per linea e cominciando dal pixel in basso a sinistra: le immagini a 2 colori usano 1 bit per pixel, il che significa che un byte permette di codificare 8 pixel; le immagini a 16 colori usano 4 bit per pixel, il che significa che un byte permette di codificare 2 pixel; le immagini a 256 colori usano 8 bit per pixel, il che significa che un byte codifica ogni pixel; le immagini in true color usano 24 bit per pixel, il che significa che bisogna avere 3 byte per codificare ogni pixel, assicurandosi di rispettare l'ordine di alternanza blu, verde e rosso.

Ogni linea dell'immagine deve avere un numero totale di byte che sia un multiplo di 4, se non è questo il caso, la linea deve essere completata con degli 0 in modo da rispettare questo criterio.

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « Il formato BMP » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.