- .bmp
-
Windows bitmap
Pour les articles homonymes, voir BMP.Windows bitmap .bmp
image/x-ms-bmp
(non officiel)Type de format
Image_matricielle Bitmap, connu aussi sous son abréviation BMP, est un format d'image matricielle ouvert développé par Microsoft et IBM. C'est un des formats d'images les plus simples à développer et à utiliser pour programmer. Il est lisible par quasiment tous les visualiseurs et éditeurs d'images.
Sommaire
Organisation du fichier
Le fichier se découpe en 3 zones :
- l'en-tête du fichier ;
- la palette de couleurs ;
- les données relatives à l'image.
En-tête du fichier
Il se découpe en 2 parties, à savoir :
- les données relatives au fichier ;
- les données relatives à l'image.
On trouve notamment la taille du fichier en octets, l'emplacement de début des données, le nombre de bits par pixels dans l'image, le type de compression utilisé, le nombre de couleurs dans la palette, la largeur et la longueur de l'image, etc.
Palette
Les logiciels de lecture utilisent trois octets pour coder la couleur (système rouge vert bleu, RVB) :
- en BMP 24 bits (1 octet bleu, 1 octet vert, 1 octet rouge par pixel), la palette n'est pas nécessaire (on peut représenter toutes les couleurs). Dans ce cas, la palette n'existe pas dans le fichier BMP ;
- en BMP 8 bits, on ne peut représenter que 256 couleurs, il faut définir une correspondance entre la couleur du pixel et les 3 composantes. Il a donc été ajouté une table juste après l'en-tête (octet 56), qui donne pour chaque valeur (de 0 à 255) les trois composantes RVB qui y correspondent).
La palette est donc une table de correspondance de type
Valeur à afficher RVB 0 R=r0, B=b0, V=v0 + octet 00 … 255 R=r255, B=b255, V=v255 + octet 00 Par exemple, pour une image en niveaux de gris (256 nuances), les trois valeurs R, V et B seront égales et varieront entre 0 et 255.
le fichier BMP d'un fichier devient donc :
- en-tête
- palette à l'octet 56 (38 en hexadécimal) ;
- image à l'octet 1 078 (0436 en hexadécimal) ;
il faut tenir compte de cela lors du calcul de l'en-tête. Il existe également un format BMP sur 4 et 2 bits.
Nombre de couleurs
Ce format supporte plusieurs variantes, selon le nombre de couleurs possibles souhaitées. La profondeur de couleurs est le nombre de bits associés à chaque pixel pour en coder la couleur.
Ainsi, les images BMP peuvent être en 2 couleurs (1 bit), 16 couleurs (4 bits), 256 couleurs (8 bits), 65 536 couleurs (16 bits) ou 16,8 millions de couleurs (24 bits).
Les images 24 bits possèdent 3 canaux de 8 bits pour les trois lumières primaires (rouge, vert, bleu) qui peuvent prendre chacune 256 valeurs différentes. Les images en 256 niveaux de gris sont possibles avec 1 seul canal de 8 bits.
Taille du fichier
Le format BMP est quasiment inexistant sur le Web : il ne dégrade pas l'image et n'utilise généralement pas de compression, aussi est-il très lourd. Il existe néanmoins la compression RLE pour le format BMP.
Pour calculer la taille approximative du fichier BMP final, on multiplie la profondeur couleurs (1, 4, 8, 16 ou 24 bits) par la hauteur et par la largeur en pixels : (Profondeur de couleurs en bits) × (Hauteur en pixels) × (Largeur en pixels) bits.
Par exemple, une image en 800x600 (800 pixels de large par 600 pixels de haut) en 24 bits (16,8 millions de couleurs) aura une taille de (800 × 600 × 24) bits soit 1,4 Mo ou encore la taille des disquettes 3"1/2 Haute densité.
Disposition des données de l'image
Contrairement à la plupart des formats d'images, les pixels de l'image sont codés en partant de la ligne inférieure de l'image. Chaque ligne (codée de gauche à droite) doit toujours occuper un nombre d'octets multiple de 4, excepté si l'image est compressée. Si la ligne ne possède pas un nombre d'octets multiple de 4, on remplit la ligne en ajoutant des zéros.
Si l'image est codée en 24 bits, chaque pixel est codé par un entier 24 bits (RVB), ordre little-endian, c’est-à-dire que les trois octets codent successivement les niveaux de bleu, vert et rouge.
Si l'image est codée avec moins de 24 bits, chaque pixel est codé sous la forme d'un index dans la table de couleurs (la palette), d'où l'appellation "image indexée". Dans le cas des images codant les pixels sur 1 bit ou 4 bits, c’est-à-dire si plusieurs pixels sont codés dans un même octet, les bits de poids fort concernent le pixel le plus à gauche.
Compression
Le format BMP permet l'utilisation de l'algorithme de compression RLE pour les images 8 bits (256 couleurs) et 4 bits (16 couleurs).
La compression est rarement proposée par les logiciels de dessins courants car elle n'est pas supportée nativement par les versions de Windows antérieures à Windows XP.
Le principe :
- Un octet compris entre 1 et 255 indique le nombre de pixels pour lesquels il faut utiliser l'information contenue dans l'octet suivant ;
- Un octet à 0 indique une action spéciale, il est suivi d'un second octet :
- S'il vaut 0, la fin de ligne est atteinte, passer à la ligne suivante ;
- S'il vaut 1, la fin de l'image est atteinte, fin de lecture ;
- S'il vaut 2, sauter X colonnes et Y lignes avant de poursuivre (X et Y étant chacun codé sur 1 octet) ;
- S'il vaut entre 3 et 255, il s'agit du nombre de pixels qui suivent, codés comme des données non compressées. Dans ce cas-là, il faut éventuellement sauter un octet inutilisé afin que le nombre d'octets soit pair.
Voir aussi
Liens internes
Lien externe
- Portail de l’informatique
Catégorie : Format de fichier graphique
Wikimedia Foundation. 2010.