Ceci est une ancienne révision du document !
Table des matières
ImageMagick est une bliothèque puissante permettant de manipuler des images (vectorielles ou matricielles).
Elle est accompagnée par une suite d'utilitaires s'utilisant en ligne de commande.
Nous allons voir quelques exemples, je vous encourage à consulter la documentation pour de plus ample détails.
Connaître les dimensions d'une image
Il faut utiliser l'utilitaire identity
1).
identify Kocherbaumwald.jpg | awk '{print $3;}'
ou
identify -verbose Kocherbaumwald.jpg | grep Geometry | awk -F': ' '{print $2;}'
Celui que je préfère
identify -format "%G\n" Kocherbaumwald.jpg
La liste des expressions que l'on peut utiliser avec l'option -format est disponible ici (section Single Letter Attribute Percent Escapes).
Supprimer les métadonnées
Si l'on souhaite supprimer toutes les métadonnées (notamment les données EXIF) d'une image en provenant d'un appareil numérique (téléphone, appareil photo numérique, etc.).
mogrify -strip Kocherbaumwald.jpg
Redimensionner une image
convert Kocherbaumwald.jpg -resize 50% kocherbaumwald.png
Si l'on souhaite uniquement changer la « hauteur » (height), la largeur sera automatiquement ajustée :
convert Kocherbaumwald.jpg -resize x125 kocherbaumwald.png
Ajouter un fond
Généralement sous Gimp on voit l'image du dessus comme ceci :
Lorsqu'une image PNG possède un canal alpha (elle est transparente), il est possible de lui rajouter un fond.
convert linux-ventoux.png -background white -flatten linux-ventoux_background.png
Jouer avec les niveaux de gris
Si on utilise une image PNG, il faut au préalable avoir un fond, sinon certaine partie de l'image sera mal convertie.
convert linux-ventoux_background.png -type Grayscale linux-ventoux_bw.png
ou
convert linux-ventoux_background.png -colorspace Gray linux-ventoux_bw.png
Modifier l'intensité
On peut vouloir appliquer un filtre à une image. Par exemple pour modifier l'intensité d'une image.
convert kocherbaumwald.jpg -brightness-contrast 45x0 kocherbaumwald_brightness-45.jpg
On peut également jouer sur une couleur.
convert kocherbaumwald.jpg -fill DarkOliveGreen3 -colorize 15% kocherbaumwald_darkolivegreen.jpg
Si on combine les deux commandes précèdentes :
convert kocherbaumwald.jpg -fill DarkOliveGreen3 -colorize 15% \ -brightness-contrast 25x0 kocherbaumwald_darkolivegreen_25.jpg
Bordure autour d'une image
Il faut utiliser les options -bordercolor et -border (elle définie les dimensions de la bordure).
convert Kocherbaumwald.jpg -bordercolor white -border 5x5 \ -bordercolor gray -border 1 kocherbaumwald_border.png
Ajouter une ombre autour d'une image
convert kocherbaumwald_border.png -page +5+5 -alpha set \ \( +clone -background gray35 -shadow 60x3+5+5 \) +swap \ -background none -mosaic kocherbaumwald_shadow.png
Pour éviter l'effet d'ombre le nombre '3' dans notre exemple doit être égal à '0'. Par ailleurs, si cette valeur est supérieure aux données de l'option -page, l'ombre apparaît tout autours de l'image.
On peut utiliser d'autres options
convert kocherbaumwald_border.png \ \( +clone -background gray35 -shadow 60x3+5+5 \) +swap \ -background none -layers merge +repage kocherbaumwald_shadow02.png
Convertir un PDF en image (PNG)
convert demo.pdf -qality 85% demo.png
On va obtenir une image transparente, il faut donc rajouter un fond (par exemple blanc) :
convert demo.pdf -quality 85% -background white -flatten demo.png
<note important>Si l'on obtient ce message d'erreur :
convert: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG
On peut rajouter cette option, +profile “icc”
à la précédente.</note>
Si le PDF possède plusieurs pages, mais que l'on souhaite uniquement avoir une page il faut le préciser. Par exemple la première page du document :
convert demo.pdf[0] -quality 58% -background white -flatten +profile "icc" demo.png