Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Vidéo numérique
Lumière et couleur
Introduction
Représentation de la couleur
Image
Codage des images
Bitmap / Vectoriel
Formats graphiques
Format BMP
Format GIF
Format PCX
Format PNG
Format TIF
Compression
Compression
Compression d'images
Traitements d'image
Traitements basiques
Filtres
Vidéo
Introduction
Compression vidéo
Format MKV
Version 2.0.3
Le format BMP Page précédente Retour à la page d'accueil

Le 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 a 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ù commence 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 0
  • 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 comporte 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.


Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.