Structures matérielles et/ou logicielles : TP 2h
Traitement de l’information
Nom : Codage d’une image BMP Date :
Apres le texte, l’image est le support le plus utilisé pour communiquer. Dans le domaine du numérique, les
images sont constituées d’une matrice L x H (Largeur x Hauteur) de points élémentaires. Nous n’aborderons
dans ce TP que le format BMP.
1 Le pixel et le codage des couleurs
Une image est constituée d'un ensemble de points appelés pixels (pixel est une abréviation
de PICture ELement).
Le pixel représente ainsi le plus petit élément constitutif d'une image numérique.
L'ensemble de ces pixels est contenu dans un tableau à deux dimensions constituant l'image :
Chaque pixel est composé d'une couleur unique. L'image ci-contre
représente l'antenne du papillon.
La couleur de chaque point est codée en binaire, enregistrée en mémoire
puis sur le disque dur.
Comme toute donnée informatique, chaque image est codée en binaire et enregistrée en mémoire. L'unité de
base de la mémoire est l'octet.
Un octet est un nombre composé de 8 bits.
Avec un octet, 256 combinaisons sont possibles. Si on associe un octet à chaque pixel, nous aurons 256
couleurs possibles dans l'image.
Plus le nombre de couleurs est important et plus il faut de bits pour coder un pixel.
1 1 bit donne deux couleurs, 0 ou 1, pour du noir et blanc.
4
1010 4 bits donnent 16 couleurs (2 ).
8
1010011 1 octet donne 256 couleurs (2 ), ces couleurs sont spécifiques à chaque image.
On peut également coder 256 niveaux de gris.
16
11011010 2 octets donnent 65536 couleurs (2 ).
11011101
00100110 Avec trois octets (24 bits), il est possible d'avoir 256 nuances pour chaque couleur de
24
10101001 base (Rouge, Vert et Bleu), cela donne un total de 16 millions de couleurs (2 ).
00100010
1/4 TP Codage Image BMP.doc
2 Création d’une image Bitmap
2.1 Création du fichier image1.bmp
Lancer Paint dans Démarrer + tous les programmes + Accessoires.
Faire Ctrl + E pour obtenir les propriétés de l’image, choisir Largeur : 20 et Hauteur : 20 et sélectionner
Pixels et Couleur puis OK.
Sélectionner puis la couleur rouge et cliquer dans l’image. Vous obtenez un petit carré rouge.
Faire Enregistrer sous, choisir Autres formats puis Bitmap 16 couleurs pour le type et nommer l’image
image1 en la plaçant dans votre répertoire (I :).
2.2 Analyse du fichier image1.bmp
Lancer l’explorateur de Windows pour retrouver votre fichier et afficher ses propriétés. Donner la
taille du fichier en octets.
Sachant que l’image fait 20*20 pixels et que chaque pixel est codé sur 4 bit, calculer la taille en bits de
cette image et en déduire sa taille en octets.
Lancer l’éditeur hexadécimal et ouvrir le fichier image1.bmp
3. Codage d’une image au format BMP
Ouvrir le document format-bmp.pdf afin de répondre aux questions suivantes :
Donner les quatre parties qui composent la structure d’un fichier BMP.
2/4 TP Codage Image BMP
3.1 Analyse de l’entête du fichier
Donner la signification des codes hexadécimaux 42 et 4D au début du fichier image.
Donner le nom attribué à ces deux octets.
Donner le nombre d’octets qui code la taille totale du fichier.
Noter la valeur correspondante de votre fichier.
Donner la valeur hexadécimale des quatre octets de l’offset de l’image.
Compléter le contenu hexadécimal de l’entête du fichier :
Signature Taille totale du fichier Champ réservé Offset de l’image
4 2
Donner la valeur binaire stockée sur le disque dur, qui correspond à la signature.
Signature
4 2
Donner la valeur binaire stockée sur le disque dur, qui correspond à la taille totale du fichier.
Taille totale du fichier
A la première question du § 2.2 vous avez donné la valeur décimale de la taille du fichier en octet. Coder
cette valeur en hexadécimal et l’exprimer sur deux octets. Que remarquez-vous ?
Si le fichier occupait 1223663 octets, comment serait codé en hexadécimal et en binaire le champ « Taille
totale du fichier » ?
Taille totale du fichier
Rappeler la valeur hexadécimale de l’offset de l’image. Convertir cette valeur en décimal et en déduire à
partir de quel octet débute réellement l’image dans le fichier.
3.2 Analyse de l’entête de l’image
Donner deux informations contenues dans l’entête de l’image :
Compléter les valeurs hexadécimales suivantes :
Taille de l’entête de l’image Largeur de l’image Hauteur de l’image
(en octets)
2 8 0 0 0 0 0 0
3/4 TP Codage Image BMP
Nb de plans Profondeur de Méthode de compression Taille totale de l’image
codage couleur (en octets)
0 1 0 0
Donner la valeur décimale de la taille de l’entête de l’image.
Donner la valeur décimale de la taille totale de l’image.
Ces valeurs correspondent-elles à la valeur trouvée à la deuxième question du § 2.2 ?
3.3 Analyse du codage de l’image
La couleur de l’image que nous avons créée est codée sur 4 bits (image en 16 couleurs).
Combien de pixels peut coder un octet ?
Vous avez vu à la dernière question du § 3.1 que l’image débute réellement à partir de l’octet ……….…….
Votre image possède 20 pixels par ligne. Comme un octet code…………… pixels il faut donc ………… octets pour
coder la première ligne de l’image. En réalité il en faut 12, car ce nombre doit être un multiple de 4.
Codes hexadécimaux de la première ligne de l’image
Le premier de ces octets (…………) code 2 pixels. Par quelle valeur hexadécimale est codé le premier pixel ?
Cette valeur correspond à la couleur ……………………… dans la palette de 16 couleurs disponibles.
4 Modification du fichier hexadécimal avec hexedit
Lancer le programme hexedit et charger votre fichier image1.bmp. Dans la partie de fichier qui
correspond à l’image, remplacer les 10 premiers octets de la première ligne de l’image par 22. Sauver le
fichier sous image2.bmp. Ouvrir ensuite ce fichier avec Paint. Qu’observez-vous ?
5 Analyse d’un fichier bmp avec hexedit
5.1 Déterminer à partir de ses propriétés, la taille en octets du fichier Tour Eiffel.bmp ainsi que la
définition de cette image (nombre de pixels verticaux et nombre de pixels horizontaux).
Ouvrir le fichier Tour Eiffel.bmp avec le programme hexedit et répondre aux questions suivantes :
5.2 Justifier la valeur des octets numéros 0x0000 et 0x0001.
5.3 Déterminer la taille en octet du fichier à partir de l’entête du fichier. Vérifier que cette taille
correspond à celle trouvée à la question 5.1.
5.4 Déterminer le numéro de l’octet à partir duquel commence le codage de l’image.
5.5 Donner le nombre de pixels horizontaux et le nombre de pixels verticaux.
Vérifier que ces valeurs correspondent aux valeurs trouvées à la question 5.1.
5.6 Donner le numéro de l’octet et la valeur permettant de justifier que le codage des couleurs utilisé
est le codage sur 24 bits.
5.7 Donner le numéro de l’octet et la valeur permettant de justifier que l’image n’est pas compressée.
4/4 TP Codage Image BMP