BMP - Format BMP

Décembre 2016

Format BMP


Le format BMP est un des formats les plus simples développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les plates formes Windows et OS/2. Un fichier .BMP est un fichier bitmap, c'est-à-dire un fichier d'image graphique stockant les pixels sous forme de tableau de points et gérant les couleurs soit en couleur vraie soit grâce à une palette indexée. Le format BMP a été étudié de telle manière à obtenir un bitmap indépendant du périphérique d'affichage (DIB, Device independent bitmap).


La structure d'un fichier bitmap est la suivante :


Entête du fichier


L'entête du fichier fournit des informations sur le type de fichier (Bitmap), sa taille et indique où commencent les informations concernant l'image à proprement parler.


L'entête est composé de quatre champs :

  • La signature (sur 2 octets), indiquant qu'il s'agit d'un fichier BMP à l'aide

des deux caractères.
    • BM, 424D en hexadécimal, indique qu'il s'agit d'un Bitmap Windows.
    • BA indique qu'il s'agit d'un Bitmap OS/2.
    • CI indique qu'il s'agit d'une icone couleur OS/2.
    • CP indique qu'il s'agit d'un pointeur de couleur OS/2.
    • IC indique qu'il s'agit d'une icone OS/2.
    • PT indique qu'il s'agit d'un pointeur OS/2.
  • La taille totale du fichier en octets (codée sur 4 octets)
  • Un champ réservé (sur 4 octets)
  • L'offset de l'image (sur 4 octets), en français décalage,

c'est-à-dire l'adresse relative du début des informations concernant l'image
par rapport au début du fichier

Entête de l'image


L'entête de l'image fournit des informations sur l'image, notamment ses dimensions et ses couleurs.

L'entête de l'image est composé de quatre champs :
  • La taille de l'entête de l'image en octets (codée sur 4 octets). Les valeurs hexadécimales suivantes sont possibles suivant le type de format BMP :
    • 28 pour Windows 3.1x, 95, NT, ...
    • 0C pour OS/2 1.x
    • F0 pour OS/2 2.x
  • La largeur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels horizontalement (en anglais width)
  • La hauteur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels verticalement (en anglais height)
  • Le nombre de plans (sur 2 octets). Cette valeur vaut toujours 1
  • La profondeur de codage de la couleur(sur 2 octets), c'est-à-dire le nombre de bits utilisés pour coder la couleur. Cette valeur peut-être égale à 1, 4, 8, 16, 24 ou 32
  • La méthode de compression (sur 4 octets). Cette valeur vaut 0 lorsque l'image n'est pas compressée, ou bien 1, 2 ou 3 suivant le type de compression utilisé :
    • 1 pour un codage RLE de 8 bits par pixel
    • 2 pour un codage RLE de 4 bits par pixel
    • 3 pour un codage bitfields, signifiant que la couleur est codé par un triple masque représenté par la palette
  • La taille totale de l'image en octets (sur 4 octets).
  • La résolution horizontale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre horizontalement
  • La résolution verticale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre verticalement
  • Le nombre de couleurs de la palette (sur 4 octets)
  • Le nombre de couleurs importantes de la palette (sur 4 octets). Ce champ peut être égal à 0 lorsque chaque couleur a son importance.

Palette de l'image


La palette est optionnelle. Lorsqu'une palette est définie, elle contient successivement 4 octets pour chacune de ses entrées représentant :

  • La composante bleue (sur un octet)
  • La composante verte (sur un octet)
  • La composante rouge (sur un octet)
  • Un champ réservé (sur un octet)

Codage de l'image


Le codage de l'image se fait en écrivant successivement les bits correspondant à chaque pixel, ligne par ligne en commençant par le pixel en bas à gauche.

  • Les images en 2 couleurs utilisent 1 bit par pixel, ce qui signifie qu'un octet permet de coder 8 pixels
  • Les images en 16 couleurs utilisent 4 bits par pixel, ce qui signifie qu'un octet permet de coder 2 pixels
  • Les images en 256 couleurs utilisent 8 bits par pixel, ce qui signifie qu'un octet code chaque pixel
  • Les images en couleurs réelles utilisent 24 bits par pixel, ce qui signifie qu'il faut 3 octets pour coder chaque pixel, en prenant soin de respecter l'ordre de l'alternance bleu, vert et rouge.


Chaque ligne de l'image doit comporter un nombre total d'octets qui soit
un multiple de 4; si ce n'est pas le cas, la ligne doit être complétée par des 0 de telle manière à respecter ce critère.

Lire un fichier BMP


Le format BMP est l'un des plus anciens formats d'images numériques, il est donc généralement supportés par tous les logiciels photo, notamment :
etc.

A voir également :


The BMP format
The BMP format
El formato BMP
El formato BMP
BMP-Format
BMP-Format
Il formato BMP
Il formato BMP
O formato BMP
O formato BMP
Ce document intitulé «  BMP - Format BMP  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.