Il formato BMP

Dicembre 2016
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 independent 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.

Potrebbe anche interessarti :

The BMP format
The BMP format
El formato BMP
El formato BMP
BMP-Format
BMP-Format
BMP - Format BMP
BMP - Format BMP
O formato BMP
O formato BMP
Il documento intitolato « Il formato BMP » da 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.