Le format BMP est un format qui représente des images point par point. Un fichier ayant une extension BMP est un fichier dont les deux premiers octets contiennent les caractères B et M (pour BitMap). La majorité des logiciels de dessin peuvent lire différents formats dimages tels que PCX, GIF, JPG, CDR, et faire les conversions au format BMP.
LES ENTETES DES FICHIERS BMPUn fichier dimage au format BMP est constitué de :
un premier entête ( Header), qui contient des informations sur le fichier telles que la tailledu fichier en octets ;
un second entête composé de :
la représentation des pixels du fichier image.Chaque pixel de limage est codé sur :
CHAMPS |
TAILLE |
DESCRIPTION |
bfType |
Word (2 octets) |
Deux caractères B et M |
bfSize |
Dword (4 octets) |
Taille total du fichier |
bfReserved1 |
Word (2 octets) |
0 |
bfReserved2 |
Word (2 octets) |
0 |
bfOffBits |
Dword (4 octets) |
Offset des bits du bitmap dans le fichier |
Figure 1 : Structure BITMAPFILEHEADER.
Cet entête est suivi du second entête qui contient une structure BITMAPINFOHEADER. Celle-ci contient onze champs.
LA STRUCTURE DU DEUXIEME ENTETE
CHAMPS |
TAILLE |
DESCRIPTION |
| biSize | Word (4 octets) |
Taille de cette structure en octets. |
| biWidth | Dword (4 octets) |
Largeur du bitmap en pixel. |
| biHeight | Dword (4 octets) |
Hauteur du bitmap en pixel. |
| biPlanes | Word (2 octets) |
1 |
| biBitCount | Word (2 octets) |
Bits couleurs par pixel. |
| biCompression | Dword (4 octets) |
Schéma de compactage (0 pour aucun). |
| biSizeImage | Dword (4 octets) |
Taille de limage en octets (utile pour le compactage). |
| biXpelsPerMeter | Dword (4 octets) |
Résolution horizontale en pixels par mètre. |
| biYpelsPerMeter | Dword (4 octets) |
Résolution verticale en pixels par mètre. |
| biClrUsed | Dword (4 octets) |
Nombre de couleurs utilisées dans limage. |
| biClrImportant | Dword (4 octets) |
Nombre de couleurs importantes. |
Figure 2 : Structure BITMAPINFOHEADER.
Tous les champs qui suivent biBitCount ont par défaut une valeur nulle. Si biClrUsed vaut 0 et que 1, 4, ou 8 bits de couleurs par pixel sont utilisés, la structure du second entête est suivie par une table de couleurs, qui est constituée de plusieurs structures appelées structure RGBQUAD. Cette structure définie la valeur RGB dune couleur.
CHAMPS |
TAILLE |
DESCRIPTION |
rgbBlue |
Byte (1 octet) |
Intensité du bleu. |
rgbGreen |
Byte (1 octet) |
Intensité du vert. |
rgbRed |
Byte (1 octet) |
Intensité du rouge. |
rgbReserved |
Byte (1 octet) |
0 |
Figure 3 : Structure RGBQUAD .
Le nombre de structures RGBQUAD est généralement indiqué par le champs biBitCount. Deux structures sont nécessaires pour 1 bit de couleur, 16 pour 4 bits et 256 pour 8 bits de couleurs. Toutefois, si le champs biClrUsed nest pas nul, sa valeur indique le nombre de structures RGBQUAD présentes dans la table des couleurs.
Pour un bitmap de 256 couleurs, chaque octet correspond à un pixel, la couleur réelle est obtenue en utilisant cet octet comme index de la table des couleurs.
Si limage contient 24 bits de couleurs par pixel, chaque ensemble de trois octets est directement une valeur RGB : il ny a pas de table de couleurs (à moins que le champs biClrUsed de la structure BITMAPINFOHEADER ne soit pas nul ).
la table des couleurs est suivie du tableau de bits qui définit limage, le tableau commence par la ligne inférieure de pixel. chaque ligne commence par le pixel le plus à gauche et contient un nombre de bits multiple de quatre. Chaque pixel est représenté par 1, 4, 8 ou 24 bits successifs.

© 1999, KADDOUR Chakib
| Réactions ? Commentaires ? Suggestions ?
Cliquez Ici
|