Encodage
Objectifs
Qu'est-ce qu'un fichier ?
- Lire une table ASCII
- Modifier un fichier texte au format hexadécimal
- Calculer la taille d'un fichier texte
- Créer des fichiers PBM, PGM et PPM
- Modifier un fichier BMP
F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.
Représentation des caractères
- Combien de caractères sont représentés dans la table ASCII ?
Solution
128 (de 0 à 127) - Sur combien de bits est codé un caractère ASCII ?
Solution
7 bits car 27 = 128 - Comme on préfère travailler avec des octets (8 bits), on a arrondi à 8 bits.
- Combien d'octets sont nécessaires pour stocker la phrase
Salut, ca va ?
?Solution
14 octets car 14 caractères
- Combien d'octets sont nécessaires pour stocker la phrase
- Ouvrir OneDrive et créer un dossier sous
OneDrive/1m/informatique/
nomméencodage
.OneDrive/
└── 1m/
└── informatique/
└── encodage/ - Télécharger le fichier hello.txt et le déposer dans le dossier
encodage
.- Clic droit sur le lien ci-dessus et choisir
Enregistrer sous
en le nommanthello.txt
et en sélectionnant le dossierencodage
.
- Clic droit sur le lien ci-dessus et choisir
- Quelle est la taille du fichier
hello.txt
et le comparer avec son contenu ?- Clic droit sur le fichier > Lire les informations.
Solution
11 [o] car il y a 11 caractères
- Clic droit sur le fichier > Lire les informations.
- Ouvrir le fichier sur HexEd.it qui est un éditeur hexadécimal en ligne.
- Aller sur le site HexEd.it et cliquer sur
Ouvrir
pour sélectionner le fichierhello.txt
. - L'écran est divisé en deux parties : l'éditeur hexadécimal à gauche et la représentation textuelle à droite.
- Observer que le premier octet
0x48
correspond au caractèreH
en ASCII.
- Aller sur le site HexEd.it et cliquer sur
- Modifier les octets dans la partie de gauche pour écrire
Hi World!
. - Sauvegarder le fichier
- Cliquer sur
Enregistrer sous
ouExporter
pour sauvegarder le fichier modifié.
- Cliquer sur
- Ouvrir le fichier modifié sur l'ordinateur pour vérifier son contenu.
- Quelle est la taille du fichier modifié ? Pourquoi ?
Solution
9 [o] car il y a 9 caractères
Représentation des images
Portable bitmap
Le format PBM (portable bitmap) permet de représenter des images en noir et blanc.
- Sauvegarder le fichier lettre-e.pbm dans le dossier
encodage
. Il a le contenu suivant :lettre-e.pbmP1
4 5
1 1 1 1
1 0 0 0
1 1 1 0
1 0 0 0
1 1 1 1P1
indique le format de l'image (noir et blanc)4 5
indique la largeur (4 px) et la hauteur (5 px) de l'image- Les pixels sont représentés par des
1
(noir) et des0
(blanc)
- Ouvrir le fichier avec Aperçu pour voir l'image.
- Ouvrir le fichier avec TextEdit pour voir le contenu.
- Clic droit sur le fichier > Ouvrir avec > Autre > TextEdit
- Créer le fichier
lettre-f.pbm
qui représente la lettreF
en noir et blanc.- Dupliquer le fichier
lettre-e.pbm
et le renommerlettre-f.pbm
. - Modifier le fichier avec TextEdit pour obtenir la lettre
F
. - Cmd + S pour sauvegarder les modifications.
- Le résultat final devrait ressembler à :
- Dupliquer le fichier
Portable graymap
Le format PGM (portable graymap) permet de représenter des images en niveaux de gris.
- Sauvegarder le fichier gyp.pgm dans le dossier
encodage
. Il a le contenu suivant :gyp.pgmP2
14 5
3
0 1 1 1 0 2 0 0 2 0 3 3 3 3
1 0 0 0 0 2 0 0 2 0 3 0 0 3
1 0 1 1 0 0 2 2 2 0 3 3 3 0
1 0 0 1 0 0 0 0 2 0 3 0 0 0
0 1 1 0 0 0 2 2 0 0 3 0 0 0P2
indique le format de l'image (niveaux de gris)14 5
indique la largeur (14 px) et la hauteur (5 px) de l'image3
indique la valeur maximale des niveaux de gris- Les pixels sont représentés par des valeurs entre
0
(noir) et la valeur maximale3
(blanc)
- Ouvrir le fichier avec TextEdit pour voir le contenu.
- Créer le fichier
gris.pgm
qui écritGRIS
en niveaux de gris.- Ne pas oublier de mettre à jour la largeur et la hauteur de l'image.
- Ne pas oublier de mettre à jour le nombre de niveaux de gris.
- Le résultat final devrait ressembler à :
Portable pixmap
Le format PPM (portable pixmap) permet de représenter des images en couleurs.
- Sauvegarder le fichier couleur.ppm dans le dossier
encodage
. Il a le contenu suivant :couleur.ppmP3
6 4
255
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0P3
indique le format de l'image (couleurs)6 4
indique la largeur (6 px) et la hauteur (4 px) de l'image255
indique la valeur maximale des couleurs (0 à 255)- Les pixels sont représentés par des valeurs RGB (rouge, vert, bleu) entre
0 0 0
(noir) et255 255 255
(blanc) - Le premier pixel est représenté par le triplet
255 0 0
(rouge)
- Ouvrir le fichier avec TextEdit pour voir le contenu.
- Créer un nouveau fichier
suisse.ppm
qui représente un drapeau suisse.- Commencer par créer un carré rouge de 5x5 pixels.
- Le résultat final devrait ressembler à :
- Créer d'autres drapeaux : français, italien, allemand, autrichien, belge, etc.
- Pour obtenir les valeurs RGB d'une couleur, chercher
color picker
sur Google. - Il est aussi possible d'obtenir la couleur exacte d'une image avec imagecolorpicker.com
- Pour obtenir les valeurs RGB d'une couleur, chercher
- Choisir une image parmi les suivantes et la reproduire en PPM :
Bitmap
Le format BMP (bitmap) est un des formats d'image les plus anciens (et les plus simples).
- Télécharger le fichier square4.bmp et le déposer dans le dossier
encodage
. - Ouvrir le fichier
square4.bmp
avec Aperçu pour vérifier que c'est bien un carré blanc de 4x4 pixels. - Ouvrir le fichier
square4.bmp
sur HexEd.it pour observer la structure du fichier :- L'en-tête du fichier prend les 0x36 premiers octets, ne pas les modifier !
- Les valeurs RGB des pixels commencent à l'adresse 0x36.
- Composées uniquement de
0xFF
(blanc) car le carré est blanc. - Il y a 48 octets pour 4x4 pixels (3 octets par pixel).
- Les trois premiers octets correspondent au pixel en bas à gauche de l'image.
- Les triplets RGB sont dans l'ordre BGR (bleu, vert, rouge) :
00 00 FF
représente le rouge etFF 00 00
le bleu - Essayer de modifier le troisième octet FF en 00, puis enregistrer le fichier pour observer le résultat.
- Composées uniquement de
- Modifier les valeurs RGB des pixels pour obtenir une des images suivantes :
Références
- https://enseigner.modulo-info.ch/rep-info/activ/numerisation_images_var.html
- https://fr.vikidia.org/wiki/Code_ASCII
- https://fr.wikipedia.org/wiki/Art_ASCII
- https://fr.wikipedia.org/wiki/Portable_pixmap
- https://fr.wikipedia.org/wiki/Windows_bitmap
- https://kylepaulsen.com/stuff/NetpbmViewer/
- https://www.gentlegeek.net/2010/11/personnages-de-jeux-video-en-4x4-pixels/