Estensioni | .bmp, .dib,.rle |
---|---|
Tipo MIME | image/bmp, image/x-bmp, image/x-ms-bmp |
Firma | 42 4D( hexa ) |
Sviluppato da | Microsoft |
Tipo di formato | Immagine raster |
La bitmap di Windows (nota anche con l' abbreviazione di BitMaP in BMP , inglese, bitmap indipendente dal dispositivo o DIB), è una dimensione di bitmap aperta sviluppata da Microsoft e IBM . È uno dei formati di immagine più facili da sviluppare e utilizzare per la programmazione. È leggibile da quasi tutti i visualizzatori di immagini e gli editor. È stato introdotto con Windows 3.0 nel 1990 .
Il file è diviso in tre aree:
Il file è diviso in due parti, vale a dire:
Offset # (numero di riga) | Formato | Valore |
---|---|---|
0x0000 | 2 byte | il numero magico corrispondente all'utilizzo del file BMP
|
0x0002 | 4 byte | la dimensione del file BMP in byte |
0x0006 | 2 byte | riservato per l'identificativo dell'applicazione che ha creato il file |
0x0008 | 2 byte | riservato per l'identificativo dell'applicazione che ha creato il file |
0x000A | 4 byte | l' offset (l'indirizzo iniziale) del contenuto del BMP |
Questi includono la dimensione del file in byte, la posizione iniziale dei dati, il numero di bit per pixel nell'immagine, il tipo di compressione utilizzato, il numero di colori nella tavolozza, la larghezza e l'altezza dell'immagine. eccetera.
Il software di lettura utilizza tre byte per codificare il colore (sistema rosso verde blu , RGB):
La tavolozza è quindi una tabella di corrispondenza del tipo:
Valore da visualizzare | Rgb | |
---|---|---|
0 | R = r0 , B = b0 , V = v0 + byte 00 | |
... | ||
255 | R = r255 , B = b255 , V = v255 + byte 00 |
Ad esempio, per un'immagine in scala di grigi (256 sfumature), i tre valori R, G e B saranno uguali e varieranno tra 0 e 255 .
La struttura del file BMP diventa quindi:
Questo dovrebbe essere preso in considerazione quando si calcola l'intestazione. Esiste anche un formato BMP a 1 e 4 bit.
Il formato BMP supporta diverse varianti, a seconda del numero di possibili colori desiderati . La profondità del colore è il numero di bit associati a ciascun pixel per codificarne il colore .
Pertanto, le immagini BMP possono essere a 2 colori (1 bit ), 16 colori (4 bit), 256 colori (8 bit), 65.536 colori (16 bit) o 16,8 milioni di colori (24 bit).
Le immagini a 24 bit hanno tre canali a 8 bit per le tre luci primarie (rossa, verde, blu), ciascuna delle quali può assumere 256 valori diversi. Le immagini in 256 livelli di grigio sono possibili con un singolo canale a 8 bit.
Il formato BMP è quasi inesistente sul Web : non degrada l'immagine e generalmente non utilizza la compressione, quindi è molto pesante. Tuttavia, esiste la compressione RLE per il formato BMP.
Per calcolare la dimensione approssimativa del file BMP finale, moltiplichiamo la profondità del colore (1, 4, 8, 16 o 24 bit) per l'altezza e per la larghezza in pixel: (Profondità del colore in bit) × (Altezza in pixel) × (Larghezza in pixel) bit.
Ad esempio, un'immagine in 800 × 600 (800 pixel di larghezza per 600 pixel di altezza) a 24 bit (16,8 milioni di colori) avrà una dimensione di (800 × 600 × 24) bit o 1,44 MB (1, 37 milioni ) o il capacità di un floppy disk da 3 ″ ½ ad alta densità (tale immagine non può quindi essere registrata su floppy disk da 1,44 Mb , in particolare a causa della tabella di allocazione file che occupa un po 'di spazio, proprio come l'intestazione dell'immagine).
A differenza della maggior parte dei formati di immagine, i pixel nell'immagine vengono codificati a partire dalla riga inferiore dell'immagine. Ogni riga (codificata da sinistra a destra) deve sempre occupare un numero di byte multiplo di 4, tranne se l'immagine è compressa . Se la linea non ha viene aggiunto un numero di multiplo di 4 byte FF, 00FFo 0000FFalla fine di ogni riga.
Se l'immagine è codificata a 24 bit, ogni pixel è codificato da un intero a 24 bit (RGB), ordine little endian , vale a dire che i tre byte codificano successivamente i livelli di blu, verde e rosso.
Se l'immagine è codificata con meno di 16 bit, ogni pixel viene codificato come un indice nella tavola dei colori (la tavolozza), da cui il nome “immagine indicizzata”. Nel caso di immagini che codificano i pixel su 1 bit o 4 bit, vale a dire se più pixel sono codificati nello stesso byte, i bit più significativi si riferiscono al pixel più a sinistra.
Il formato BMP consente l'utilizzo dell'algoritmo di compressione RLE per immagini a 8 bit (256 colori) e 4 bit (16 colori).
La compressione RLE, introdotta nel formato BMP all'epoca di Windows 3.x , tuttavia non era completamente supportata fino a Windows 95 . È usato raramente perché è realmente efficace solo su immagini in cui la maggior parte dei pixel adiacenti ha lo stesso colore.
Il principio :