Format Bmp de Microsoft

Cette section présente le format d'images Bitmap (BMP) de Microsoft utilisé par Up ! Microsoft Bitmap.

Une image au format Bitmap est encodée avec la convention d'Intel i.e. Little Endian.

La résolution possible est variable même si dans les fait elle est souvent de 72 Dot Per Inch (DPI).

Les palettes de couleurs possibles sont noir et blanc, 16 couleurs, 256 couleurs et couleurs vraies.

En-tête du fichier Bitmap

Les propriétés de l'en-tête du fichier débutent au premier octet du fichier. Elles sont les suivantes :

PropriétéTaille en octetsDescription
Signature4.Signature du format. BM.
TailleFichier4.Taille du fichier en octets.
Reservé2.Réservé pour des extensions. 0.
Reservé2.Réservé pour des extensions. 0.
Offset4.Offset du début des pixels l'image.

En-tête de l'image Bitmap

Les propriétés de l'en-tête de l'image suivent celles de l'en-tête du fichier. Elles sont les suivantes :

PropriétéTaille en octetsDescription
TailleStructure4.40.
LargeurPixels4.Largeur de l'image en pixels.
HauteurPixels4.Hauteur de l'image en pixels.
NbPlans2.Nombre de plans. 1.
NbBitsParPixel2.Nombre de bits par pixel.
Compression2.Mode de compression.
Taille4.Taille de l'image en octets.
NbPixelsParMetreX4.Nombre de pixels par mètre en abscisse.
NbPixelsParMetreY4.Nombre de pixels par mètre en ordonnée.
NbCouleursUtilisees4.Nombre de couleurs utilisées.
NbCouleursImportantes4.Nombre de couleurs importantes.

Si la valeur de la propriété HauteurPixels est positive, alors les lignes de l'image sont définies du bas vers le haut. Si la valeur de la propriété HauteurPixels est négative, alors les lignes de l'image sont définies du haut vers le bas.

Les valeurs possibles de la propriété NbBitsParPixels sont :

Les valeurs possibles de la propriété Compression sont :

Table des couleurs de la palette de l'image Bitmap

La table des couleurs n'est précisée que pour les palettes noir et blanc, 16 couleurs, 256 couleurs et 65536 couleurs. Sa taille est le nombre de couleurs utilisées ou à défaut le nombre maximal de couleurs. Elle suit l'en-tête de l'image.

Les couleurs sont enregistrées sur trois octets qui sont dans l'ordre Rouge, Vert, Bleu suivi d'un octet inutilisé.

Pour la palette noir et blanc, la première couleur correspond au pixel éteint ; la seconde au pixel allumé.

Codage des couleurs par masque

Quand la valeur de la propriété Compression est 0 ou 3 alors il n'y a pas de table des couleurs. Cela est uniquement possible pour une image en :

Codage des pixels de l'image Bitmap

Les pixels commencent à partir de la position Offset donnée dans l'en-tête du fichier.

Les pixels de l'image sont codés ligne après ligne, dans l'ordre défini par la propriété HauteurPixels. Les lignes sont alignées sur un double mot - 4 octets - quand l'image n'est pas compressée.