Outils pour utilisateurs

Outils du site


issue49:c_c

On April 22nd, reader John Niendorf contacted me to request an article on Graphicsmagick. In response to his email, I plan to cover the basic use-cases of graphicsmagick (henceforth referred to as “gm”), a more advanced use (batch processing), and creation of MIFF files as visual image directories. If your needs are anything like mine, you'll find that gm is excellent if you want to do a batch conversion, or if you want to quickly create a thumbnail from a large image without opening a graphics app. Before reading the list, please take into account that <something>* means that it can be repeated indefinitely, and anything in square brackets is optional (but useful to know about). So, without further ado, here's a list of commands I find useful, and keep in mind these are basic frameworks:

Le 22 avril, un lecteur, John Niendorf, m'a contacté pour demander un article sur Graphicsmagick. En réponse à son courriel, j'ai prévu de vous présenter des cas d'utilisation basique de graphicsmagick (que l'on appellera gm ici), un usage plus avancé (gestion automatisée) et la création de fichiers MIFF contenant un aperçu de toutes les images d'un répertoire.

Si vos besoins ressemblent aux miens, vous trouverez que gm est excellent pour faire de la conversion automatisée ou bien si vous souhaitez créer rapidement une miniature à partir d'une grande image sans ouvrir une application graphique. Avant de lire la liste, sachez que <quelque chose>* signifie que le quelque chose peut être répété indéfiniment et que ce qui se trouve entre crochets est optionnel (mais utile à connaître). Alors, sans autre préliminaire, voici une liste des commandes que je trouve utiles et gardez en tête que ce sont des exemples de base :

gm identify <file> lists information on format and size of image, and also displays status of file (incomplete, corrupted, etc). gm montage [<options><input>]* <output> Combines all the input files into the single output file, with some formatting options (tiling, display image name below image, etc). gm mogrify <options> <input file> Transforms the file. gm convert <options> <input file> <output file> Transforms the file (same as mogrify, except that mogrify overwrites the file). gm composite <file to change> <base file> [<mask file>] <output file> Merges, blends, and masks the files to create a new image.

gm identify <fichier> liste des informations sur le format et la taille de l'image ; affiche également le statut du fichier (incomplet, corrompu, etc.).

gm montage [<options><entrée>]* <sortie> Combine tous les fichiers d'entrée dans un seul fichier de sortie, avec des options de mise en forme (mosaïque, afficher le nom des images en dessous, etc.).

gm mogrify <options> <fichier d'entrée> Transforme le fichier.

gm convert <options> <fichier d'entrée> <fichier de sortie> Transforme le fichier (idem que mogrify, sauf que mogrify écrase le fichier).

gm composite <fichier à changer> <fichier de base> [<fichier de masque>] <fichier de sortie> Fusionne, mélange et masque les fichiers pour créer une nouvelle image.

This is just a very basic outline of the possible commands, and a basic framework of arguments that can be used with it. As for common options: -geometry <height>x<width><+/→<x><+/→<y> This option specifies the geometry of the image window, including x and y offset. Example: -geometry 1600×1050+10+10. -size <height>x<width> This option is passed before the input file, and allows jpeg images to be read in as a small size, in order to cut down processing time. Great for batch creation of thumbnails. Example: -size 170×160. -thumbnail <height>x<width> This option uses preset options to create a thumbnail quickly.

Ce n'était qu'un résumé très simple des commandes possibles et un exemple de base des arguments que l'on peut utiliser avec. Quant aux options courantes :

-geometry <hauteur>x<largeur><+/→<x><+/→<y> Cette option spécifie la géométrie de la fenêtre de l'image, incluant un décalage x et y. Par exemple : -geometry 1600×1050+10+10.

-size <hauteur>x<largeur> Cette option est placée avant le fichier d'entrée et permet de lire les images jpeg dans une petite taille, dans le but de raccourcir le temps de traitement. Très pratique pour la création automatisée de miniatures. Exemple : -size 170×160.

-thumbnail <hauteur>x<largeur> Cette option utilise des options préréglées pour créer rapidement une miniature.

-resize <height>x<width> This option actually scales the image to the supplied size. -gaussian <radius>{x<sigma>} This option applies a gaussian blur to the image. Sigma refers to the standard deviation. Generally you'll need only the radius option. -quality <value> This option sets the quality of the output image (for JPG/MIFF/TIFF/PNG). <value> can be an integer between 0 and 100 (where 100 = best quality, lowest level of compression). -crop <width>x<height>{+-}<x>{+-}<y>{%} This option allows you to crop the image to the size you specify (and supply an offset).

-resize <hauteur>x<largeur> Cette option change l'échelle de l'image pour qu'elle ait la taille demandée.

-gaussian <rayon>{x<sigma>} Cette option applique un flou gaussien à l'image. Sigma est l'écart-type. En général, vous n'aurez besoin que de l'option pour le rayon.

-quality <valeur> Cette option règle la qualité de l'image de sortie (pour les JPG/MIFF/TIFF/PNG). <valeur> peut être un entier entre 0 et 100 (où 100 = qualité la meilleure et faible compression).

-crop <largeur>x<hauteur>{+-}<x>{+-}<y>{%} Cette option vous permet de découper l'image à la taille que vous indiquez (et de fournir un décalage).

This list of options should be enough to get you started and experimenting. Once you've found a command you like, with suitable options, you may want to apply it to a large section of files within the current directory. In order to do so, you would use a command similar to this (see below for explanation of options): find . -name “*jpg” | xargs -l -i basename “{}” “.jpg” | xargs -l -i gm convert -quality 100% “{}.jpg” “{}.png” Here, find . -name “*jpg” returns a list of all jpg files in the current directory, which gets passed to xargs, which goes line-by-line (“-l”) and removes the suffix(“.jpg”) from the list (“{}”) using basename. Afterwards, the list is passed to xargs again, and it then executes gm convert -quality 100% “{}.jpg” “{}.png”, which essentially takes each image and converts it to a png file. The middle-step is necessary to avoid having files called “*.jpg.png” after batch is complete. This trick could also be used for cropping, editing, or resizing a large number of files.

Cette liste d'options devrait vous suffire pour commencer et expérimenter. Une fois que vous aurez trouvé une commande que vous aimez, avec les bonnes options, vous voudrez peut-être l'appliquer à plusieurs fichiers du répertoire courant. Pour faire cela, vous procéderez ainsi (voyez plus bas pour l'explication des options) :

find . -name “*jpg” | xargs -l -i basename “{}” “.jpg” | xargs -l -i gm convert -quality 100% “{}.jpg” “{}.png”

Ici, find . -name “*jpg” renvoie une liste de tous les fichiers jpg du répertoire courant ; cette liste est envoyée à xargs qui la parcourt ligne à ligne (“-l”) et retire le suffixe (“.jpg”) de la liste (“{}”) en utilisant la commande basename. Ensuite, la liste est envoyée à nouveau à xargs qui exécute gm convert -quality 100% “{}.jpg” “{}.png”, ce qui en gros prend chaque image et la convertit en fichier png. L'étape intermédiaire est nécessaire pour éviter d'avoir des fichiers nommés “*.jpg.png” après la fin du travail. Ceci peut également être utilisé pour découper, éditer ou redimensionner un grand nombre de fichiers.

Last, but not least, I'll be covering how to create a visual image directory (a file of thumbnails of the images within a folder). To create the file, use this command: gm convert 'vid:*.jpg' directory.miff The miff extension stands for the ImageMagick Magick Image File Format. The reason for the format is due to the fact that gm was forked from imagemagick back in 2002. In order to display the file afterwards, simply run the command: gm display directory.miff If you're wondering why this might be useful, imagine having thousands of photos on one PC, and you're looking for a single one. Instead of working on that computer and trying to find the file, you could copy over the miff file and browse it at your leisure, or use it to create a catalogue of thumbnails. Hopefully you've found the tips in this article helpful, and will continue to put them to good use. If you have any requests or questions, you can reach me at lswest34@gmail.com. Please put the words “Command & Conquer”, “C&C”, “Full Circle Magazine”, or “FCM” in the subject line, so I don't overlook it. Also, please try to write the emails in English or German, since I otherwise have to rely on Google Translate.

Pour terminer, je vais vous montrer comment créer un visuel d'un répertoire d'images (un fichier contenant les aperçus de toutes les images d'un répertoire). Pour créer le fichier, utilisez cette commande :

gm convert 'vid:*.jpg' directory.miff

L'extension miff signifie Magick Image File Format (format de fichier d'image magick). Le nom de ce format s'explique par le fait que gm est un logiciel qui fut dérivé d'ImageMagick en 2002. Pour afficher ce fichier par la suite, exécutez simplement la commande :

gm display directory.miff

Si vous vous demandez en quoi ceci peut être utile, imaginez que vous ayez des milliers de photos sur un PC et que vous en cherchiez une en particulier. Au lieu de travailler sur l'ordinateur en essayant de la retrouver, vous pourriez copier le fichier miff et le parcourir pendant votre temps libre ou l'utiliser pour créer un catalogue d'aperçus.

J'espère que vous avez trouvé les astuces de cet article intéressantes et que vous continuerez à en faire bon usage. Si vous avez des demandes ou des questions, vous pouvez me joindre à l'adresse lswest34@gmail.com. Placez les mots “Command and Conquer”, “C&C”, “Full Circle Magazine” ou “FCM” dans l'espace « Objet », pour que je voie votre message. Et s'il vous plaît, essayez d'écrire les messages en anglais ou en allemand, sinon je dois compter sur Google Traduction.

issue49/c_c.txt · Dernière modification : 2011/06/06 14:36 de andre_domenech