La ligne de commande d'ImageMagick peut être aussi simple que ça :
$ convert image.jpg image.png
ou aussi complexe que ça :
$ convert label.gif +matte \( +clone  -shade 110x90 -normalize -negate +clone  -compose Plus -composite \) \ \( -clone 0 -shade 110x50 -normalize -channel BG -fx 0 +channel -matte \) \ -delete 0 +swap -compose Multiply -composite  button.gif
Sans en savoir beaucoup sur la ligne de commande d'ImageMagick, vous pouvez pensez probablement que la première commande convertie une image au format JPEG à une image au format PNG. Cependant, très peu peuvent réaliser la
deuxième commande, plus complexe, qui donne à une imagette en 2 dimensions une vue en 3 dimensions avec une texture et une simulation de profondeur :
Dans la prochaine partie, nous dissèquerons l'anatomie de la ligne de commande d'ImageMagick. Heureusement, après avoir soigneusement lu et mieux compris comment fonctionne la ligne de commande, vous devriez être capable d'accomplir de complexes images sans avoir recours aux interfaces de programmes parfois intimidantes.
La ligne de commande d'ImageMagick consiste en :
convert, composite, montage, compare, import, et conjure).Vous trouverez une explication détaillée de chacune des parties constituantes des commandes dans les parties qui suit.
ImageMagick étend le concept de fichier en entré pour inclure :
Chacune de ces extensions sont expliquées dans les prochains paragraphes.
Dans les consoles Unix, certains caractères tel que l'astérisque (*) et le point d'interrogation (?) cause automatiquement des listes de nom de fichier pour être généré, basé sur un assortiment de modèles. Cette caractéristique est connu comme étant le rassemblement de noms de fichier. ImageMagick support cela pour des systèmes, tel que Windows®, qui ne le supporte par nativement. Par exemple, supposez que vous voulez convertir 1.jpg, 2.jpg, 3.jpg, 4.jpg, et 5.jpg situé dans votre répertoire en cours en une animation GIF. Vous pouvez simplement vous référer à l'ensemble des fichiers par cette commande :
$ convert *.jpg images.gif
Les images sont stockées en une myriade de formats d'image incluant les très connus JPEG, PNG, TIFF et tous les autres. ImageMagick doit connaître le format de l'image avant de la lire et de l'utiliser. La plupart des formats ont une signature à l'intérieure de l'image qui identifie uniquement ce format. Sans cela, ImageMagick se sert de l'extension du nom du fichier pour déterminer le format. Par exemple, image.jpg informe ImageMagick qu'il lit une image au format JPEG. Dans certain cas, l'image peut ne pas contenir la signature et/ou l'extension n'identifie pas le format de fichier. Dans ce cas un format d'image explicite doit être spécifié. Par exemple, supposez que notre image s'appelle image et contient les valeurs d'intensité rouge, verte et bleu. ImageMagick n'a aucun moyen de déterminé automatiquement le format d'image, vous devez donc l'expliciter ainsi :
$ convert -size 640x480 -depth 8 rgb :image image.png
ImageMagick a un certain nombre d'images et de motifs pré-installés. Pour les utilisez le motif de l'arrière-plan, par exemple, faites :
$ convert -size 640x480 pattern :checkerboard checkerboard.png
Les images et motifs utilisables sont décris dans la partie P.IV Images pré-installées.
Unix permet d'orienter la sortie d'une commande vers une autre. ImageMagick permet d'orienter une commande vers une autre en utilisant le nom de fichier -. Dans cet exemple, nous orientons la sortie de convert vers le programme display :
$ convert magick :logo gif :- | display gif :-
Ici le format explicite est optionnel. Le format d'image GIF a une unique signature à l'intérieure de l'image, donc ImageMagick peut facilement reconnaître ce format comme étant GIF.
Certains formats d'images contiennent plus qu'une trame d'image. Peut être que vous  voulez seulement la première image, ou la dernière, ou n'importe laquelle entre. Vous pouvez préciser quelle trame d'images à lire en ajoutant au nom du fichier image, le domaine de la trame encadré par des crochets. Ici notre image contient plus qu'une trame mais nous voulons seulement la première :
$ convert images.gif[0] image.png
Les consoles Unix interprète généralement les crochets, vous devez donc les protéger par des guillemets :
$ convert 'images.gif[0]' image.png
Vous pouvez lire plus qu'une image de la séquence avec un domaine de trame. Par exemple, supposez que vous voulez les quatre premières trames d'une séquence :
$ convert 'images.gif[0-4]'images.mng
Enfin, vous pouvez lire plus qu'une image d'une séquence, dans n'importe quel ordre :
$ convert 'images.gif[3,2,4]' images.mng
Cela lit la troisième image dans la séquence, suivit par la seconde, puis la quatrième.
Les images brutes sont une séquence d'intensité de couleur sans méta informations supplémentaire tels que la largeur, la hauteur ou la signature de l'image. Avec des formats d'images brutes, vous devez spécifier la largeur et la hauteur de l'image mais vous pouvez également spécifier une région de l'image à lire. Dans notre exemple, l'image est au format RGB 8 bit brute et a une largeur de 600 pixels et une hauteur de 4 000 pixels. Cependant, nous voulons seulement une région de 600 par 400 proche du centre de l'image :
$ convert -size 6000x4000 -depth 8 'rgb :image [600x400+1900+2900]' image.jpg
Vous pouvez obtenir le même résultat avec l'option -extract :
$ convert -size 6000x4000 -depth 8 -extract 600x400+1900+2900 rgb :image image.jpg
Un paramètre d'image persiste dés qu'il apparaît dans la commande et peut affecter tous les processus tels que la lecture d'une image, un opérateur d'image, ou lors de l'écriture d'une image. Un paramètre d'image est défini jusqu'à ce qu'il soit remis par défaut ou jusqu'à la fin de la commande. Les paramètres d'image inclus :
—adjoin —antialias —authenticate —background —bordercolor —box —channel —colors
—colorspace —comment —compress —debug —define —delay —density —depth —display —dispose
—dither —endian —extract —fill —font —format —fuzz —gravity —interlace —label
—limit —log —matte —mattecolor —monitor —monochrome —orient —page —pointsize —preview
—quality —sampling-factor —size —texture —treedepth —type —units —verbose
Dans cet exemple, -channel s'applique à chaque images puisque comme nous l'avons mentionné, les paramètres persistent :
$ convert -channel RGB wand.png wizard.png images.png
Un opérateur d'image diffère d'un paramètre est qu'il affecte l'image directement dés qu'il apparaît dans la commande. Un opérateur est une option non listé comme un paramètre d'image ou une séquence d'opérateur. Contrairement à un paramètre d'image qui persiste jusqu'à la fin de la commande, un opérateur est appliqué à une image puis oublié.
''--affine --annotate --bias --black--threshold --blue-primary --blur --border --charcoal --chop --clip --clip --path --colorize --compose --contrast --convolve --crop --cycle --despeckle --draw --edge --emboss --encoding --enhance --equalize --evaluate --family --filter --flip --flop --floodfill --frame --gamma --gaussian --geometry --green-primary --implode --intent --lat --level --linewidth --loop --map --mask --median --modulate --negate --noise --normalize --opaque --ordered-dither --paint --pen --posterize --raise --profile --quiet --radial--blur --raise --random-threshold --red-primary --region --render --resample --roll --rotate --sample --scale --separate --sepia-tone --segment --shade --shadow --sharpen --shave --shear --sigmoidal-ontrast --solarize --splice --spread --stretch --strip --stroke --strokewidth --style --support --swirl --threshold --thumbnail --tile --tint --transform --transparent --trim --undercolor --unsharp --version --virtual-pixel --wave --weight --white-point --white --threshold''
Dans cet exemple, -negate transforme l'image baguette en négatif mais pas le magicien :
$ convert baguette.png -negate magicien.png images.png
Un séquence d'opérateur d'image diffère d'un paramètre en ce qu'il affecte une séquence d'image dés qu'il apparaît dans la commande.
–append –average –coalesce –combine –composite –crop –deconstruct –flatten –fx
–map –morph –mosaic –process –scene –write
À l'école, votre professeur vous a probablement permit de travail sur un problème sur un bout de papier puis de copier le résultat sur votre feuille au propre. Une pile d'image et similaire. Elle vous permet de travailler sur une image ou une séquence d'images à part puis d'introduire le résultat dans la commande. La pile d'image est délimitée par des parenthèses. Les opérateurs d'image agissent seulement sur les images de la pile en cours. Par exemple, nous pouvons limiter la transformation en négatif seulement à l'image magicien comme cela :
$ convert baguette.gif \( magicien.gif -negate \) +append images.gif
Remarquez que les parenthèses sont échappées. C'est à dire qu'elles sont précédées d'un anti-slash. Cela est obligatoire sous Unix, puisque les parenthèses sont des caractères spéciaux. L'anti-slash informe la console de ne pas interpréter ces caractères et de les envoyer vers ImageMagick.
En plus des opérateurs d'image déjà présentés, ces opérateurs d'image sont plus utiles lorsqu'ils sont utilisés dans des piles 'images :
–clone –delete –insert –swap
Remarquez, l'option -clone est seulement valide entre parenthèses.
ImageMagick étend le concept de nom de fichier en sortie pour inclure :
Chacune de ces extensions sont expliquées dans les prochains paragraphes.
Les images sont stockées en une myriade de formats d'image incluant les très connus JPEG, PNG, TIFF  et tous les autres. ImageMagick doit connaître le format de l'image avant de l'écrire. ImageMagick se sert de l'extension du nom du fichier pour déterminer le format. Par exemple, image.jpg informe ImageMagick d'écrire l'image au format JPEG. Dans certain cas, le nom de fichier n'identifie pas le format de fichier. Dans ce cas l'image est écrite dans le format dans laquelle elle a été lue à moins qu'un format ait été précisé.
Par exemple, supposez que vous voulez créer un fichier d'image dans le format brut d'intensité rouge, vert et bleu :
$ convert image.jpg rgb :image
Unix permet d'orienter la sortie d'une commande vers une autre. ImageMagick permet d'orienter une commande vers une autre en utilisant le nom de fichier -. Dans cet exemple, nous orientons la sortie de convert vers le programme display :
$ convert magick :logo gif :- display gif :-
Ici le format explicite est optionnel. Le format d'image GIF a une unique signature à l'intérieure de l'image, donc ImageMagick peut facilement reconnaître ce format comme étant GIF.
Vous pouvez préciser la taille du carreau TIFF en ajoutant au nom de fichier avec la largeur et la hauteur du carreau encadré de crochet. Ici, nous créons un carreau d'image qui a 64 pixels de largeur et 64 pixels de hauteur par cette commande :
$ convert magicien.png magicien.tif[64x64]
Les consoles Unix interprète généralement les crochets, vous devez donc encadrer les noms de fichier entre de simple guillemet :
$ convert magicien.png 'magicien.tif[64x64]'