Il formato BMP

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. 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 :

Titolo 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
Titolo dell'immagine

Il titolo dell'immagine fornisce delle informazioni sull'immagine, soprattutto le sue dimensioni e i suoi colori.

Il titolo dell'immagine è composto da quattro campi :

    La dimensione del titolo 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 bits 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.


Ultime modificazione ilvenerdì 6 febbraio 2009 alle 16:52:02


Questo documento intitolato «  » da Kioskea (it.kioskea.net) è reso disponibile sotto la licenza Creative Commons. È possibile copiare, modificare le copie di questa pagina, alle condizioni previste dalla licenza, come questa nota appare chiaramente.