BMP

Format BMP — structure et usages du fichier bitmap Windows

Le BMP, bitmap de Windows : en-têtes, table de couleurs, pourquoi il est si lourd, stockage de bas en haut et cas où il reste utile.

Extensions.bmp (.dib)
MIMEimage/bmp
SpécificationDocumentation Microsoft (pas de norme internationale officielle)
CompressionGénéralement aucune (RLE en option)
TransparenceLimitée (alpha défini dans les en-têtes 32 bits V4 et V5)
AnimationNon
Profondeur de couleur1, 4, 8, 16, 24 ou 32 bits par pixel

Le BMP est le format de fichier qui stocke les bitmaps indépendants du périphérique (DIB) utilisés par Microsoft Windows et OS/2. Il ne s'agit pas d'une norme fixée par un organisme international : ce sont les documents de développement de Microsoft qui servent de spécification de fait. Sa principale caractéristique est sa structure simple, que n'importe quel programme peut facilement lire et écrire.

Structure du fichier

Selon le document « Bitmap Storage » de Microsoft Learn, un fichier BMP se compose des éléments suivants, dans cet ordre.

OrdreÉlémentContenu
1BITMAPFILEHEADERIdentifiant du fichier (BM), taille du fichier, position du début des données de pixels
2BITMAPINFOHEADER (ou en-tête V4 / V5)Largeur et hauteur en pixels, bits par pixel, méthode de compression, résolution
3Table de couleurs (tableau de RGBQUAD)Utilisée par les images 1, 4 et 8 bits à palette
4Tableau de pixelsDonnées réelles de l'image

Les deux premiers octets du fichier étant BM en ASCII (42 4D en hexadécimal), cette signature permet de reconnaître un BMP même si son extension a été modifiée. L'en-tête d'information comporte aussi un champ pour la résolution d'impression (pixels par mètre).

Stockage de bas en haut

Un BMP classique stocke les pixels de la ligne du bas vers la ligne du haut (bottom-up). Si la hauteur indiquée dans l'en-tête est négative, le stockage se fait de haut en bas (top-down). Par ailleurs, des octets de remplissage sont ajoutés à la fin de chaque ligne pour que son nombre d'octets soit un multiple de 4. Ce sont des erreurs fréquentes lorsqu'on écrit soi-même un programme de lecture de BMP.

Exemple de calcul de la taille d'une ligne

Chaque ligne d'un BMP doit être alignée sur 4 octets. Pour une image 24 bits de 101 pixels de large, les données réelles d'une ligne font 101 × 3 = 303 octets ; on ajoute 1 octet de remplissage pour atteindre un multiple de 4 et la ligne est stockée sur 304 octets. La taille totale des données de pixels est donc (octets par ligne) × hauteur en pixels, à laquelle on ajoute l'en-tête (généralement 54 octets) pour obtenir la taille du fichier. À cause de cette règle, les images dont la largeur n'est pas un multiple de 4 provoquent souvent des erreurs de décalage d'une ligne à l'autre lorsqu'on les manipule directement.

Pourquoi il est si lourd

Le BMP stocke le plus souvent les pixels bruts sans compression. Un BMP 24 bits utilise 3 octets par pixel : une image de 1920×1080 pèse environ 6,2 Mo, et une photo de smartphone de 4032×3024 environ 36,6 Mo. Pour les images à palette de 8 bits ou moins, on peut choisir la compression RLE (codage par plages), mais elle est presque sans effet sur les photos. MDN recommande d'ailleurs d'éviter le BMP pour les contenus web à cause de son poids.

Transparence

Le BMP 24 bits traditionnel n'a pas de canal alpha. Un BMP 32 bits utilisant les en-têtes V4 ou V5 peut définir un masque alpha, mais de nombreux programmes ne l'interprètent pas correctement comme de la transparence : pour échanger des images transparentes, le PNG est plus sûr.

Quand utilise-t-on encore le BMP

  • Lorsque d'anciens équipements industriels, des appareils embarqués, des imprimantes de tickets ou certains logiciels internes n'acceptent que le BMP
  • Pour des programmes simples ou des exemples pédagogiques qui doivent manipuler les pixels tels quels, sans compression ni décompression
  • Comme mode de stockage des petites images à l'intérieur des icônes Windows (ICO)

Précautions de conversion

  • BMP → PNG : sans perte, et le poids diminue fortement. C'est la meilleure conversion pour l'archivage et le partage.
  • BMP → JPG : pour une photo, le poids est divisé par plusieurs dizaines, mais une compression avec perte est appliquée.
  • Autre format → BMP : vérifiez la profondeur exigée par l'appareil (24 bits ou 8 bits). Les zones transparentes sont remplies avec la couleur de fond. Le convertisseur de format d'image permet d'enregistrer en BMP.

Mis à jour le: 2026-09-23

Sources

← Retour aux formats