*Ce tuto est à l'origine fait pour un atelier du chaton le-pic.org
apt install imagemagick php8.2-imagick gimp, gimp-gutenprint caca-utils feh pdftk
Avoir un visionneur d’images. Sous linux, ristretto est installé d’office
Imagemagick est un outil assez puissant pour la manipulation des images.
Nous laisserons de coté les scripts bash pour l’instant, plus adapté aux codeurs.
les commandes dans ce tuto :
convert et ses options (-caption, fuzzy, canvas, display, -quality , -resize, -compress, -density et pour extraire des images png à partir de chaque page d'un document pdf ….)
mogrify et ses options (-resize, -format….)
montage et ses options ( cadre, label..)
window : permet de capturer l 'écran entier , zone de l'écran,
composite pour : Superpositions ou mélange des images, simple, avec décalage, avec décalage, mise à l'échelle, découpe, avec décalage, mise à l'échelle, rotation, avec transparence..etc…
faites une boule lumineuse en ligne de commandes
convert -size 256x256 radial-gradient: radial_gradient.png
le résultat est :
un cadre à qui vous donnez les dimensions
convert -size 128x256 gradient: -rotate 90 linear_gradient_east.png
le résultat est :
La commande convert
1) Redimensionner et réduire le poids dune image en en ligne de commande
convert -strip -interlace Plane -quality 30% image.png nouvelle_image.png
2) Compresser une image en utilisant un taux de compression à 55%
convert -quality 55% image_origine.jpg image_sortie.jpg
3) Réduire et redimensionner le poids en une seule ligne.
convert -quality 45% -resize 800 image_origine.jpg image_sortie.jpg
4) Exemple :réduire le poids d’une image de 1,1Mega à 341ko avec
convert -quality 35% image.jpg image-réduite.jpg
5) convertir des images jpg en pdf
convert votre image.jpg votre image.pdf
6) convertir des images en pdf
convert Page138.jpg Page139.jpg Page140.jpg Page141.jpg Page142.jpg Page143.jpg nouveau-fichier.pdf
la commande convert avec fuzz: Pour rendre transparent le fond blanc, on fait varier le pourcentage de l’option « fuzz »
convert mon_image.png -fuzz 20% -transparent white mon_image_transparente.png
La commande mogrify:
mogrify est pratique pour traiter des fichiers par lot, quel que soit le nombre.
Convertir tous les .jpg en pdf
mogrify -format pdf -- *.jpg
Convertir tous les .jpg en png
mogrify -format png -- *.jpg
Convertir tous les png en jpg
mogrify -format jpg – *.png
modifier le format des .jpg dans un répertoire . mets tous les fichiers.jpg en 150×90 naturellement les images doivent êtres plus grandes que ce qui est demandé.
mogrify -resize 150x90 *.jpg
réduit le fichier rose.jpg de 50 %
mogrify -resize 50% rose.jpg
Changer les jpg en png et inversement (2exemples)
mogrify -format jpg *.png ou mogrify -format png *.jpg
faites un carré bleu
convert -size 164x164 canvas:black -channel blue -fx "1/2" carré-bleu.png
changer la couleur avec chanel
convert -size 164x164 canvas:black -channel red -fx "1/2" carre-rouge.png
Nous voulons faire une rotation de 60 degrés avec notre etit carre bleu
convert petit-carre-bleu.jpg -rotate 60 flip-carre.jpg
recolorions notre petit carré en gris
convert petit-carre-bleu.jpg -colorspace Gray petit-carre-gris.jpg
La commande composite
il existe trop de possibilités, nous passerons rapidement sur cette commandes..
Ajout d'un motif en haut à droite d'une image, ici le carré fait 400×400
composite -compose Over -gravity NorthEast flip-carre.jpg carré-rouge.png image_finale.jpg
Créons un petit cercle coloré
convert -size 100x60 xc: -stroke Firebrick -fill yellow -strokewidth 2 -draw 'circle 50,30 50,55' cercle-jaune.jpg
Puis, on le superpose au carré rouge
composite -compose Over -geometry +20+40 -gravity Center cercle-jaune.jpg carré-rouge.png image-composé.jpg
Partons d'une image quelconque “herbe-follo.jpg
Le premier cadre est transparent
convert herbe-folles.jpg -raise 30x30 herbe-folle-cadre-1.jpg
Faisons un autre cadre plus discret gris et blanc
convert herbe-folles.jpg -bordercolor white -border 5 -bordercolor dimgray -border 15 herbe_folle_deux.jpg
Un autre petit cadre en bois
convert herbe-folles.jpg -mattecolor peru -frame 15x15+5+5 cadre_bois_herbes_folles.jpg
La commande “montage”
Pour les commandes suivantes, je conseille de créer et d'utiliser des images de même taille
Ici j'ai convertis les images des tux en plus petit 200×200
Les images se nomment : marintux.jpg marsu-tux.jpg marteautux.jpg musicotux.jpg tuxsocket.jpg potux.jpg pernotux.jpg pernotux.jpg gnubaye.jpg
premier montage
montage marintux.jpg marsu-tux.jpg marteautux.jpg musicotux.jpg tuxsocket.jpg potux.jpg pernotux.jpg pernotux.jpg premier_montage.jpg
montage, réussi, malgré un message d'erreur dans la console
montage marsu-tux.jpg marteautux.jpg musicotux.jpg tuxsocket.jpg pernotux.jpg peretux.jpg \ -title -frame 19 -geometry +4+4 troisieme_montage.jpg
le même avec un titre au dessus “wanted”
montage troisieme_montage.jpg -title WANTED -geometry +2+2 quatrième.jpg
avec les cadres le titre et les noms des tux
montage -label '%f' marsu-tux.jpg marteautux.jpg musicotux.jpg tuxsocket.jpg pernotux.jpg peretux.jpg \ -title titre -frame 19 -geometry +4+4 cadreplusnoms.jpg
voila pour ces quelques exemples, si vous fouillez dans les docs d’imagemagick, vous y trouverez des tonnes de possibilités.
on peut s’amuser longtemps en modifiant la taille de images, les options..
afficher une image en ascii dans la console
jp2a letuxsocket.jpg
afficher une image ascii en couleur
img2txt --format=svg tuxinou.jpg > tuxinou.svg
Pour finir, je veux écrire mon prénom en ascii
convert -background white -font courier -fill black -pointsize 42 label:'maurice' tmp.png && convert tmp.png tmp.pbm && pbmtoascii -2x4 tmp.pbm convert-im6.q16: unable to read font `courier' @ warning/annotate.c/RenderType/949