Notations
Notations pour la structure des données.- B (Byte) = entier sur 1 octet
- W (Word) = entier sur 2 octets
- DW (DoubleWord) = entier sur 4 octets
- S[x] (String) = chaîne de caractères avec x caractères
Structure du format
Donnée | Structure | Valeur | Explication |
entête du fichier | |||
file_type | S[2] | 'BM' | identification du format |
file_size | DW | taille du fichier | |
reserved | DW | 0 | réservé (inutilisé) |
bitmap_offset | DW | offset de l'image | |
entête du bitmap | |||
header_size | DW | taille de l'entête en octets | |
width | DW | largeur en pixels de l'image | |
height | DW | hauteur en pixels de l'image | |
planes | W | 1 | nombre de plans utilisés |
bits_per_pixel | W | {1,4,8,16,24,32} | nombre de bits utilisés par pixel |
compression | DW | 0 = pas de comp. 1 = RLE 8bits 2 = RLE 4bits 3 = bitfield enc. |
méthode de compression |
size_bitmap | DW | taille de l'image en octets | |
horiz_resolution | DW | résolution horiz. en pixels par mètre | |
vert_resolution | DW | résolution vert. en pixels par mètre | |
colors_used | DW | 0 = palette entière | |
colors_important | DW | nombre de couleurs importantes | |
palette (optionnelle) |
Remarques
- Attention au sens de codage : celui-ci se fait de gauche à droite puis de bas en haut
- De plus pour chaque ligne écrite, la taille des données doit être multiple de 4, il faut compléter avec des 0 (et les ignorer à la lecture)
- Dans la palette on écrit successivement dans l'ordre les couleurs en RGB.
- Le code en pascal pour Delphi d'ouverture et d'enregistrement de fichiers BMP est disponible dans les sources de notre projet TPE sur la Compression graphique