La commande Convert d'ImageMagick

Dans le paquage d'ImageMagick, la commande Convert est la commande de base pour convertir des images. Elle dispose de très nombreuses options.

La page officielle d'ImageMagick : https://imagemagick.org/

Installer Imagemagick#

Pour installer le package ImageMagick sous Fedora, entrez la commande suivante :

sudo dnf install imagemagick

Utiliser la commande Convert#

$ convert -help
[...]
Usage: convert [options ...] file [ [options ...] file ...] [options ...] file

Convertir entre différents formats#

Pour convertir une image d'un format .PNG en format .JPG, taper la commande :

convert image.png image.jpg

Dans le cas d'une conversion en format .JPG, on peut spécifier la qualité de compression (par défaut, 92%) :

convert image.png -quality 95 image.jpg

Redimensionner une image#

Pour redimensionner à 20% de la taille initiale une image, tapez la commande :

convert image-original.jpg -resize 20% image-resized.jpg

Pour redimensionner une image en h=200 pixels de haut et l=100 pixel de largeur, tout en préservant le ratio initial :

convert example_original.png -resize 200x100 example_200x100.png

Pour forcer les dimensions, sans prendre en compte le ratio, il faut ajouter un '!' :

convert example_original.png -resize 200x100\! example_200x100.png

Comme Convert respecte le ratio de départ, on peut simplement spécifier un seul des 2 paramètres de hauteur ou de largeur :

convert example_original.png -resize 200 example_200x100.png pour une image de 200 pixel de hauteur

convert example_original.png -resize x100 example_200x100.png pour une image de 100 pixel de largeur

Retourner une image#

Pour retourner un image de 90° vers la droite (sens des aiguilles d'une montre) :

convert image-original.jpg -rotate 90 image-rotated.jpg

Application d'effet graphique#

ImageMagick peut appliquer toute un série d'effet à une image. Par exemple :

convert example_original.jpg -charcoal 2 example_charcoal.jpg pour appliquer l'effet "charcaol" (fusain)

convert example_original.jpg -implode 1 example_implode.jpg pour appliquer l'effet "implode" (implosion)

convert example_original.jpg -grayscale Rec709Luma example_grayscale.jpg pour appliquer l'effet "grayscale" (niveaux de gris) avec une méthode non-linéaire

convert example_original.jpg -grayscale Rec709Lumanance example_grayscale.jpg pour appliquer l'effet "grayscale" (niveaux de gris) avec une méthode linéaire

Combiner les opérations#

Toutes les opérations peuvent être combiné sur une seul ligne de commande, par exemple :

convert example_original.png -resize 400x400 -rotate 180 -charcoal 4 -quality 95 example_converted-400x400.jpg

Convertion en masse#

Grace à la ligne de commande, il estpossible de convertir en masse plusieurs images.

Par exemple grace à ce script pour redimensionner toutes les images .JPG du dossier courant :

for img in *.jpg; do
convert -resize 20% "$img" "opt-$img"
done

ou cette commande combinée va retourner toutes les images .PNG du dossier courant :

for file in *.png; do convert $file -rotate 90 rotated-$file; done

Créer un GIF animé à partir d'image#

Pour créer une animation en format GIF à partir de plusieurs images sources, utiliser la commande suivante :

# afficher chaque image 1 seconde (-delay est en 100ième de seconde) et faire boucler l'animation 3 fois
convert -delay 100 -loop 3 source1.png source2.png source3.png source4.png source5.png animation.gif

avec -loop 0 pour boucler indéfiniment

Il est possible d'utiliser toute les images du dossier courant en utilisant le caractère "*" :

convert *.png animation.gif

Ou d'utiliser un fichier texte messources.txt contenant les chemins des images à utiliser :

source1.png
source2.png
source3.png
source4.png
source5.png

Si le nom de l'image contient des espaces, il faut l'entourer avec des "'". Exemple : 'image source.png'

puis la commande :

convert @messources.txt animation.gif

links

social