42 votes

Comment refléter des fichiers d'image via la ligne de commande ?

Ce que je veux faire est très simple. J'ai un file.png, que je veux refléter, c'est-à-dire que le résultat devrait être un "reflet" de l'image d'origine.

Je sais que de grands outils comme GIMP et InkScape peuvent le faire, mais j'espère trouver un utilitaire en ligne de commande, quelque chose comme convert (qui n'a malheureusement pas l'air d'avoir cette option, ou du moins ce n'est pas mentionné dans la page de man).

61voto

Sergiy Kolodyazhnyy Points 97292

Après une lecture rapide de ceci, apparemment convert appelle cette option -flop pour le miroir horizontal, et -flip pour le vertical. Tout ce que je devais faire était

convert -flop input.png output.png

7voto

EA304GT Points 171

Si vous voulez écraser en place et que vous avez une tonne de fichiers image dans le même dossier, mogrify de la suite ImageMagick semble être le moyen le plus facile pour y parvenir :

# miroir dans l'axe vertical :
mogrify -flip *.jpg

# miroir dans l'axe horizontal :
mogrify -flop *.jpg

4voto

Mark Dominus Points 403

Pour cette tâche particulière, convert est probablement la meilleure façon de procéder, mais pour ce genre de choses, j'utilise souvent la bibliothèque netpbm, qui est installable (comme on pourrait s'y attendre) avec apt install netpbm. Ensuite

  pngtopnm input.png | pnmflip -lr \
    | (autres transformations si désiré) \  
    | pnmtopng > output.png

Pour cette tâche, c'est exagéré, mais je me retrouve souvent à écrire des scripts ponctuels pour transformer ou analyser des fichiers PNM de manière spéciale qui ne serait pas disponible dans convert. C'est relativement facile, car le PNM est à peu près le format graphique bitmap le plus simple imaginable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X