Outils pour utilisateurs

Outils du site


les_exposes:image_format_d_une_image_bmp

Comment est codé une image noir et blanc au format BMP?

1- Qu'est-ce qu'une image au format BPM?

Le format BMP est un format de fichier très répandu et l'un des plus utilisés. C'est un des formats d'images les plus simples à développer et à utiliser pour programmer. Le 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. Il existe d'autre type de format d'image, dont le PNG, GIF,JPG, JPEG…

Le fichier BPM se compose en deux parties bien distinctes:

→L'entête (les données du fichiers) L'entête fournit des informations sur le transfert de l'image dont son type d'image (BMP ici), elle transfère également des informations sur l'image elle même tel que ses dimensions et ses couleurs (palette de couleurs utilisées).

→Dans un second temps un envoi de donnée est fait à propos de l'image et des couleurs de chaque pixel.

Tout transfère de données est fait en hexadécimale.


2- Codage des couleurs en format BPM

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. .


3-Codage en noir et blanc sur le format BMP

Le codage en format BMP n'est pas compliqué a comprendre, nous prendrons l'image ci-dessous pour permettre une meilleure compréhension pour savoir comment il est réalisé.

Tout d’abord deux octets sont envoyés comme ceux ci-dessous :

  • Les 4 premiers bits permettent de savoir quel type d'image est envoyée.
  • Les 4 suivants indiquent la taille du fichier.
  • Le dernier octet ne sert qu'en cas de nécessité.
  • Un octet pour l'offset de l'image est aussi suivi mais pas indiqué sur la photo ci-dessus.

Pour coder chaque pixel de l'image en noir et blanc il ne faut qu'un bit car deux valeurs 0 ou 1 pour noir ou blanc. Chaque ligne de pixel de l'image doit être composer d'un multiple de 4 octets. Soit que pour l'image précédente, il faut 4*12= 48 octets même s'il n'y a besoin que de 10 bits sur 4 octets.

Exemple de code d'une image en format BMP

Sur l'image si dessous 1 carré égale 1 pixel .Les deux premier nombres informe sur la taille de l'image en pixel (ici 11 de large et de haut) ,puis chaque chiffre (0 ou 1) montre si le pixel est noir ou blanc.(0:blanc 1:noir)

Sources : → https://fr.wikipedia.org/wiki/Windows_bitmap#Nombre_de_couleurshttp://www.commentcamarche.net/contents/1200-bmp-format-bmphttp://raphael.isdant.free.fr/traitement_numerique/2-traitement_numerique_de_l'image.pdf

les_exposes/image_format_d_une_image_bmp.txt · Dernière modification: 16/10/2019 18:31 par colinguervin