le 10/01/2024
3H
TP N°1 présentation de imagemagick et des images pbm
et GIMP editeur d'image.
Prérequis
Machine Linux Lycée avec imagemagick installé , ici les commandes display et convert vont nous intéresser.
Pour installer imagemagick ces deux commandes sont à saisir
sudo apt update
sudo apt install imagemagick -y
vérifier que les commandes display et convert répondent bien sur votre terminal.
Découverte de GIMP
sudo apt update
sudo apt install gimp -y
But
Créations d'images au format ASCII pbm non compressé et compressé (notion)
Faire un compte rendu au format pdf a envoyer sur ciela1@workboot.fr
L1PBM.pdf
accompagné de l'archive au format tar
nous allons ici travailler avec le format pbm en ASCII . (pédagogique)
Le wikipedia est très bien fait.
Le format ASCII pbm : voir le site de référence portable pixmap
Il existe énormément de fichier image
Pour les nos premiers tp image on va utiliser le format (P1) pbm en ascii pour bien assimiler les principes.
Est une suite d'outils en ligne de commande qui vont nous aider à utiliser des images.
C'est une fonction offerte par imagemagick qui est le couteau suisse de l'image numèrique !
On pourra utiliser aussi gimp, qui est le logiciel libre et opensource pour le traitement d'image (en GTK+)
L’équivalent de photoshop .. en moins onéreux mais légal !
dans un répertoire imagepbm créer le fichier texte (ascii) suivant:
fichier:
J.pbm
P1
# Un exemple bitmap de la lettre "J"
7 10
0 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 1 0 0 0 1 0
0 0 1 1 1 0 0
0 0 0 0 0 0 0
avec vi créer ce fichier texte
P1 c'est quoi ?
dimension de l'image ?
y a t'il un moyen de mettre des commentaires ?
une ligne ne doit pas dépasser combien de caractères ?
puis dans le terminal on va utiliser imagemagik la fonction display et l'option -resize 100 pour afficher cette image en zoomant (-resize 100):
display -resize 100 J.pbm
Expliquer ce que vous avez compris de ce fichier?
P1 ?
# ?
7 10 ?
on appel ce type d'image un fichier bitmap (carte de bit) pourquoi ?
on va modifier le fichier avec vi (c'est un peu laborieux mais a faire ) (on pourra ne faire que les 2 premieres lignes)
remplacer les espace par un retour a la ligne
par exemple:
0 0 0 0 0 1 0
donne :
0
0
0
0
0
1
0
vérifier le fichier en lisant avec display
l'espace est un délimiteur qui à le même effet que le retour à la ligne ici (on peut ajouter l'option -resize pour mieux voir)
display J1.pbm
avec la fonction ls -l relever les nombres d'octets des fichiers J.pbm et J1.pbm
Justifier ces valeurs (retrouver par un grand calcul :))
et expliquer les valeurs des codes ASCII ... (espace, retour chariot ..) etc
hexdump -C J.pbm
puis
hexdump -C J1.pbm
cette fonction est assez simple à utiliser
C'est l'extension du fichier qui permet de déterminer le format.
convert J.pbm J.bmp #extension .pbm en .bmp
display J.bmp
(bmp contraction de bitmap)
vous avez créé un nouveau fichier image , on peut savoir rapidement ce que contient ce fichier grâce à la fonction file
bruno@elliott:~/Works/langage_C/pbm$ file J.pbm
J.pbm: Netpbm image data, size = 7 x 10, bitmap Un exemple bitmap de la lettre "J", ASCII text
bruno@elliott:~/Works/langage_C/pbm$ file J.bmp
J.bmp: PC bitmap, Windows 95/NT4 and newer format, 7 x 10 x 24, cbSize 362, bits offset 122
bmp est donc un format propriétaire de Microsoft.
lequel est le plus gros fichier ?
Créer une J.jpg et vérifier ce que ca donne et pourquoi.
convert -compress none J.bmp Jcn.pbm
en ajoutant l'option -compress none , il n'y a pas de compression
Justifier la taille de ce fichier ...
pourquoi est il plus petit que J.pbm ?
convert J.bmp Jc.pbm
Justifier Jc.pbm ! compressé comment
Faire les même manipulations avec le format d'image jpg
Faire les même manipulations avec le format d'image png
sudo apt update
sudo apt install gimp -y
Utiliser GIMP pour editer vos images
Créer avec GIMP un fichier pbm ASCII de G.pbm
(voila mon G) faites mieux !
il faut des talents d'artistes !
on affiche le J.pbm (pour garder la taille)
moi j'ai utiliser la gomme et le stylo et voila mon G
exporter du menu fichier au format pbm ascii!
display , file , vi , hexdump
Ecrire une conclusion sur le format d'image pbm en ASCII