#ImageMagick # Commandes disponibles : - animate : anime à l'écran une série d'images - compare : établit les différences, d'un point de vue mathématique et visuel, entre une image et sa reproduction - composite : superpose deux images - conjure : interprète et exécute des scripts écrits en MSL (Magick Scripting Language) - convert : permet d'effectuer des transformations (conversion de format, redimensionnement, découpage, effets graphiques, ...). L'image transformée est stockée dans un autre fichier - display : affiche des images - identity : permet d'obtenir des détails sur les images - import : permet de réaliser des captures d'écran - mogrify : permet de réaliser des transformations sur une image comme "convert", mais écrase la source avec l'image transformée - montage : permet de créer une image de type mosaïque à partir de plusieurs images - stream : permet de traiter les pixels d'une image à la manière d'un flux de données, pixel par pixel -- Transformations basiques -- - Changement de format : $ convert source.gif cible.png (garde l'ancien fichier) ou $ mogrify -format ong source.gif (écrase l'ancien fichier) Avec mogrify, on peut effectuer une transformation par lot. Par exemple : $ mogrify -format png *.jpg - Redimensionnement : on peut redimensionner des images avec l'option -resize de convert et mogrify. retailler en pourcentage (ex : -resize 125%) nouvelle largeur en pixels (ex : -resize 640) nouvelle hauteur en pixels (ex : -resize x480) Pour réduire une image à 80% : $ convert -resize 80% source.png cible.png Pour obtenir une image dont la hauteur serait de 480 pixels : $ convert -resize x480 source.png cible.png Pour redimensionner toutes les images d'un répertoire (écrase les anciennes images) : $ mogrify -resize x480> *.jpg - Miniaturisation : Transformer les images .jpg en miniatures 128x128 placées dans le sous-répertoire miniatures/ $ mogrify -path miniatures/ -thumbnail 128x128 *.jpg l'option -thumbnail redimensionne les images mais enlève également des métadonnées pour obtenir un fichier le plus léger possible. l'option -path permet d'indiquer à la commande que le résultat doit être placé dans un autre répertoire. - Inversion options -flop : effet miroir et -flip : renversement - Rotation l'option -rotate avec comme argument l'angle de rotation en degrés. Une valeur positive effectue une rotation dans le sens anti-horaire. Avec '>' : la rotation ne se fait que si la largeur est plus grande que la hauteur Avec '<' : la rotation ne se fait que si la largeur est plus petite que la hauteur Par ex : $ mogrify -rotate 90< *.png Transforme tous les portraits en paysages et laisse telle quelle les paysages. -- Décoration -- - Cadres On utilise l'option -frame qui prend en argument l'épaisseur du cadre (horizontale, puis verticale) On peut choisir la couleur du cadre avec l'option -mattecolor Par ex : $ convert source.jpg -mattecolor orange -frame 20x20 cible.jpg Pour un cadre biseauté, on utilise -frame 20x20+5+5 On peut également utiliser l'option -raise pour un effet 3D Par ex : $ convert source.jpg -raise 20x20 cible.jpg Pour une simple bordure, on peut utiliser l'option -border $ convert source.jpg -bordercolor orange -border 20x20 cible.jpg - Ombre portée On utilise l'option -shadow. Elle prend en argument une chaîne de la forme AxB+C+D, la seule valeur obligatoire étant A : A : % d'opacité de l'ombre B : rayon du flou de l'ombre C : décalage horizontal D : décalage vertical Exemple : $ convert source.jpg \( +clone -background black -shadow 70x5+40+40 \) +swap -background white -layers merge cible.jpg Explications : la commande +clone travaille sur un clone de l'image. On définit le fond noir. On crée ensuite une ombre de la couleur du fond (noir), avec une opacité de 70%, des bordures floues sur 5 pixels et décalée de 40 pixels vers la droite et vers le bas. On utilise +swap pour intervertir les 2 dernières images de la séquence. On définit ensuite la couleur de fond à blanc. Enfin, on demande de fusionner les images avec merge - Texte On utilise la commande 'label' Options : -background : couleur de fond -fill : couleur du texte -font : police. Pour connaitre les polices disponibles : convert -list font -pointsize : taille de la police Par ex : $ convert -font Nimbus-Sans-Regular -pointsize 40 label:"Ceci est un texte" texte.jpg - Légendes On utilise l'option -caption. Cette option modifie la métadonnée 'caption' de l'image. En combinant avec l'option -polaroid, on peut afficher le texte en légende : $ convert -caption "Les Alpes à Albertville" source.jpg -polaroid 3 cible.jpg On peut également créer une image contenant le texte et la placer en dessous d'une image. Pour accoler les 2 images, on utilise l'option -append : $ convert montagne.jpg -font Nimbus-Sans-Regular -pointsize 40 label:"Ma légende" -append append.jpg Si on veut inclure le texte dans l'image, on utilise l'option -composite associé à l'option -gravity pour positionner le texte : $ convert montagne.jpg -font Nimbus-Sans-Regular -pointsize 40 -background none -fill white label:"Ma légende" -gravity south -composite composite.jpg - Vignettage Effet qui consiste à rendre plus sombre les coins de l'image. Cet effet peut s'obtenir avec l'option -vignette. Elle prend en argument une chaîne de type AxB+C+D (seul A est obligatoire). A : rayon du vignettage (en général vaut 0) B : étendue du flou (sigma) C et D : espace entre le bord du vignettage et le bord de l'image. Des valeurs positives induisent un vignettage plus petit que l'image. (10% par défaut) Par ex : $ convert source.jpg -background black -vignette 0x200-150%-150% cible.jpg On peut également utiliser cette option pour créer un médaillon d'une image : $ convert source.jpg -vignette 0x10 cible.jpg -- Effets et retouche -- - Peinture à l'huile option -paint avec comme argument la taille du pinceau. Par ex: $ convert source.jpg -paint 11 cible.jpg - Négatif : option -negate. On peut également l'associer à l'option -channel qui indique qu'il ne faut que travailler sur un canal particulier. Par ex: $ convert source.jpg -channel blue -negate cible.jpg L'option -channel accepte les valeurs : red,green,blue,alpha,cyan,magenta,yellow,black,opacity,index,rgb,rgba,cmyk et cmyka - Corriger une sous-exposition L'option -sigmoidal-contrast permet d'augmenter le contraste sans saturer les zones de lumière. Elle prend 2 arguments séparés par un x (ou , ?) : - l'intensité de correction de contraste (généralement entre 1 et 4) - le réglage de la luminosité de 0 (vers le blanc) à 100% (vers le noir) Par ex: $ convert source.jpg -sigmoidal-contrast 4,20% cible.jpg - Noir et blanc $ convert source.jpg -colorspace gray cible.jpg -- Assemblage -- - Mosaïque avec convert Par ex, si on a 4 images et qu'elles font toutes 640x480 pixels : $ convert no.jpg -page +640+0 ne.jpg -page +0+480 so.jpg -page +640+480 se.jpg -mosaic cible.jpg - Mosaïque avec montage Pour faire la même chose que l'exemple précédent : $ montage no.jpg ne.jpg so.jpg se.jpg -mode Concatenate cible.jpg On peut forcer l'agencement des images avec -tile. Par ex, si on veut mettre les images sur une seule ligne : $ montage no.jpg ne.jpg so.jpg se.jpg -mode Concatenate -tile x1 cible.jpg Si l'on veut laisser un espace entre les différentes images, on peut utiliser l'option -geometry : $ montage no.jpg ne.jpg so.jpg se.jpg -geometry +4+4 cible.jpg