Initiation à la ligne de commande G'MIC - GreycLab/gmic-community GitHub Wiki
[TOC]
Avant d'être un populaire greffon pour Gimp, G'mic est un logiciel en ligne de commande dédié au traitement d'images. Ce tutoriel suppose que les lignes de commande sont tapées dans un terminal Unix. Les utilisateurs de Windows devront s'adapter et voudront peut-être installer MinGW. Il est aussi possible de tester les notions développées ici dans un filtre prévu pour le greffon.
gmic -instruction1 arguments -instruction2 arguments etc...
Tout est déjà expliqué dans la page de référence officielle, mais ça vous semblera surement trop aride là-bas, pour un peu de luxuriance, voyez ci-dessous.
Avant d'appliquer un traitement à une image, G'mic doit la charger avec l'instruction -input. Après le traitement, vous voudrez probablement décharger le résultat final sur votre disque dur en utilisant l'instruction -output.
Prenons un exemple de base. Pour faire tourner de 90° une image appelée image.jpg et sauver le résultat en tant que fichier au format PNG, vous utiliserez la commande:
gmic -input image.jpg -rotate 90 -output image.png
Vous remarquerez que G'mic retourne le détail des opérations dans le terminal. Pour la ligne de commande précédente, vous devriez avoir quelque chose comme ça:
[gmic]-0./ Start G'MIC instance.
[gmic]-0./ Input file 'image.jpg' at position [0] (1 image 512x384x1x3).
[gmic]-1./ Rotate image [0] of 90 deg., black borders and linear interpolation.
[gmic]-1./ Output image [0] as file 'image.png'.
[gmic]-1./ End G'MIC instance.
Comme ça, vous ne pourrez pas dire que vous ne savez pas ce qu'il se passe.
Pour faciliter les choses, les instructions les plus courantes ont des alias. Par exemple, -input peut être remplacé par -i et -output par -o. Ainsi, notre exemple de base peut être réécrit:
gmic -i image.jpg -rotate 90 -o image.png
En fait, l'instruction -input est tellement courante qu'une façon encore plus rapide de l'invoquer est implémentée dans G'mic: il suffit de taper directement le nom de l'image sans aucune instruction. La ligne de commande suivante est donc l'exacte équivalente de la précédente:
gmic image.jpg -rotate 90 -o image.png
N'en espérez pas plus, ça n'ira pas plus vite.
vous pouvez sauver l'image que vous traitez n'importe où dans la ligne de commande (avant ou après une opération) et le nom du fichier de sortie détermine le format. Ainsi, avec la ligne de commande suivante, vous obtenez 3 images dans 3 différents formats, la BMP n'a pas subi de rotation alors que les autres, si.
gmic image.jpg -o image.bmp -rotate 90 -o image.png -o image.tga
A propos, par défaut, G'mic sauvegarde les fichiers JPEG avec la qualité 100, ce qui est probablement plus que ce que vous souhaiteriez. Pour sauvegardez en qualité 95, utilisez -o image.jpg,95
Si vous ne spécifiez aucune instruction -output (ou -o) ou si vous donnez explicitement l'instruction -display, alors G'mic affichera votre image sur l'écran. Les 2 prochaines lignes de commandes font la même chose: elles affichent l'image après avoir fait une rotation de 45°.
gmic image.jpg -rotate 45
gmic image.jpg -rotate 45 -display
Tapez 'q' pour quitter l'écran d'affichage.
Il y a encore beaucoup à dire sur l'écran d'affichage, mais ce ne sera pas pour maintenant.
-rotate angle,_borders,_interpolation,_cx[%],_cy[%],_zoom
Cela signifie que -rotate peut avoir jusqu'à 6 arguments. Le premier (angle) doit être spécifié. Les autres commencent par un soulignement ( _ ), cela veut dire qu'ils sont optionnels. Quelques tests devraient suffire à vous faire comprendre le fonctionnement. Essayez ces lignes par exemple:gmic image.jpg -rotate 30,1
gmic image.jpg -rotate 30,0,0,50%,50%
gmic image.jpg -rotate 30,0,0,0%,0%,0.5
Vous pouvez aussi obtenir la documentation officielle hors connexion avec man gmic ou gmic -h.
Vous pouvez gérer plusieurs images à la fois, il suffit de toutes les charger. Par exemple, les lignes suivantes chargent les images et les affichent:
gmic image1.jpg image2.jpg image3.jpg
gmic image*.jpg
Si vous écrivez votre ligne de commande comme dans le chapitre précédent, les instructions G'mic seront alors appliquées à toutes les images chargées. En lançant la ligne suivante:
gmic image*.jpg -rotate 90 -o image.png
Vous ordonnez à G'mic d'appliquer une rotation à tous les fichiers image*.jpg et de les sauver en tant que PNG. Mais il ne sauvera pas plusieurs images dans un seul fichier appelé image.png, il les nommera image_000001.png, image_000002.png, image_000003.png, etc.
Vous pouvez spécifier les images sur lesquelles vous voulez appliquer une instruction en ajoutant le numéro de l'image, en commençant par 0, entre crochets:
gmic image*.jpg -rotate[0] 90
n'effectue la rotation que sur la première image chargée.
gmic image*.jpg -o[1] image.png
sauvegarde seulement la deuxième en tant que image.png.
Si vous utilisez des nombres négatifs, vous commencez par la dernière image:
gmic image*.jpg -rotate[-1] 90
n'effectue la rotation que sur la dernière image chargée.
gmic image*.jpg -rotate[-2] 90
n'effectue la rotation que sur l'avant-dernière.
Vous pouvez aussi sélectionner un jeu d'image à manipuler:
gmic image*.jpg -rotate[0,2,-1] 90 |
tourne la première, la troisième et la dernière. |
gmic image*.jpg -rotate[0-9] 90 |
tourne les 10 premières images. |
gmic image*.jpg -rotate[0-10:3] 90 |
tourne une image sur 3 en commençant par la première et finissant par la onzième, i.e. la première, la quatrième, la septième et la dixième. |
gmic image*.jpg -rotate[0,-4--1] 90 |
tourne la première et les 4 dernières. |
gmic image*.jpg -rotate[50%-100%] 90 |
tourne la seconde moitié de la liste d'images. |
gmic image*.jpg -rotate[0,50%--1] 90 |
tourne la première image et la seconde moitié de la liste d'images. |
Par défaut, une instruction remplace l'image originale by celle manipulée. il y a une façon de conserver l'originale: utiliser le double tiret (- -). Ex:
gmic image.jpg --rotate 90
produit 2 images: image.jpg et image.jpg tournée de 90°. Plus de détails sont disponibles ici.
Comme vous l'avez vu dans le chapitre précédent, l'ordre des images est important. Vous pouvez modifier cet ordre quand bon vous semble en utilisant -move or -reverse:
gmic image*.jpg -move[50%-100%] 0
déplace la deuxième moitié des images au début.
gmic image*.jpg -reverse
inverse l'ordre de toutes les images. Vous pouvez aussi ne conserver qu'une partie des images de votre liste avec -keep ou vous débarrasser de certaines avec -remove. Si vous vous sentez perdu parfois, regardez ce que G'mic retourne dans le terminal, il devrait signaler combien d'images il reste.
Quand vous commencez à jouer sérieusement avec G'mic, les lignes de commandes peuvent devenir bien longue. Une solution élégante consiste en l'écriture d'une commande personnalisée. De nombreuses commandes personnalisées existent déjà, vous pouvez les étudier et beaucoup apprendre à travers elles.
Ça vous aiderait probablement d'avoir un peu plus d'explications sur l'art d'écrire des commandes personnalisées, mais vous n'en trouverez pas ici. Tout ce qui sera dit est qu'il vous faut charger votre commande personnalisée avant de pouvoir l'utiliser.
Cela se fait en utilisant l'instruction -command ou -m ou encore sans instruction du tout si votre fichier finit par .gmic. Ainsi, les 3 prochaines lignes de commandes font la même chose:
gmic -command mon_fichier_de_commande_personnalisee.gmic image.jpg -my_command
gmic -m mon_fichier_de_commande_personnalisee.gmic image.jpg -my_command
gmic mon_fichier_de_commande_personnalisee.gmic image.jpg -my_command