Qu'est-ce qu'une image ?
Cette page est le complément de ce
formulaire Javascript qui manipule les codes de couleur et
de
celui-ci qui présente la stéganographie.
Une expérience

J'ai créé avec
Gimp une image de 4×3 pixels et je l'ai sauvegardée sous
test.bmp.
Elle est représentée ci-contre fortement agrandie.
Ensuite j'ai ouvert le fichier
test.bmp avec un
éditeur hexadécimal .
Matériel
Vous pouvez télécharger l'image
ici . Attention, elle est minuscule.
J'ai utilisé, sous
Linux, l'éditeur hexadécimal
KHexEdit (il y a aussi
GHex ).
Sous
Windows, y a
frhed dont le site est
ici
et que l'on peut télécharger
ici (je ne l'ai pas essayé ).
Sous
Mac, il y a
HexEdit dont le site se trouve
ici (je ne l'ai pas essayé ).
Lecture
L'affichage décimal donne :
- 090 est le nombre d'octets du fichier;
- 054 signifie que le codage du premier pixel est décalé de 54 et donc commence au 55e octet;
- 004 indique une largeur de 4 pixels;
- 003 indique une hauteur de 3 pixels;
- 024 indique que le codage d'une couleur est fait avec 24 bits, c'est-à-dire 3 octets.
L'affichage
hexadécimal donne :
- 42 4d donne BM en ASCII,
cela permet d'identifier une image de format
.bmp
- aux octets 55,56 et 57, on trouve le codage du premier pixel en bas à gauche.
Attention, le code n'est pas RGB mais
BGR donc le pixel a la couleur de code #efe215, c'est-à-dire jaune.
- suivent 10 pixels de couleur
#6d9472 et le dernier est un pixel rouge de code #a73933
Documentation
Sur la structure des fichiers bitmap :
Avertissement
Le format
bitmap est un format sans compression et sa lecture est beaucoup plus simple que celle des formats
plus courants.
Format png
Après avoir converti test.bmp en test.png et après l'avoir ouverte avec un éditeur hexadécimal, j'obtiens :
On peut lire
- La signature (fond gris vert) qui signale que le format de l'image est png
- des débuts de segments en vert
- le premier segment
IHDR (en-tête) : on reconnaît les dimensions de l'image 4pixels × 3 pixels ;
- le segment
pHYS correspont à Physical pixel dimensions
- le segment
tIME donne la date de création 07d8 donne 2008 en décimal, 07 donne juillet,
1a donne 26, puis suivent l'heure, la minute et la seconde de création…
- le segment
IDAT qui contient les données ; il reste obscur pour moi car il ne décrit pas pixel après pixel l'image mais utilise un algorithme de compression ; j'ai quand même reconnu reconnu le code de la couleur verte…
- le segment
IEND qui indique la fin du fichier
Je me suis servi de cette page et de ses liens et documents.