Как отразить файлы изображений через командную строку?

13

То, что я хочу сделать, очень просто. Я имею file.png, который я хочу отразить, то есть результат должен быть "отражением" исходного изображения.

Я знаю, что большие инструменты, такие как GIMP и InkScape, могут сделать это, но я надеюсь на утилиту командной строки, что-то вроде этого convert(которая, к сожалению, не имеет такой опции, или, по крайней мере, она не упоминается на manстранице).

Сергей Колодяжный
источник

Ответы:

26

Из быстрого прочтения этого , очевидно, convertназывает эту опцию как -flopдля горизонтального зеркалирования, так и -flipдля вертикального. Все, что мне нужно было сделать, это

convert -flop input.png output.png
Сергей Колодяжный
источник
1
sudo apt-get установить imagemagick
tonka
Я прочитал кое-что об изменении convertна magick. Так что, если что-то пойдет не так, попробуйте magick.
Сигур
3

Если вы хотите перезаписать на месте, и у вас есть тонна файлов изображений в одной папке, mogrifyиз набора ImageMagick, кажется, самый простой способ добиться этого:

# mirror in the vertical axis:
mogrify -flip *.jpg

# mirror in the horizontal axis:
mogrify -flop *.jpg
EA304GT
источник
2

Для этой конкретной задачи convert, вероятно, лучший путь, но для такого рода вещей я часто использую netpbmбиблиотеку, которую можно установить (как и следовало ожидать) apt install netpbm. затем

  pngtopnm input.png | pnmflip -lr \
    | (other transformations if desired) \  
    | pnmtopng > output.png

Для этой задачи это излишне, но я часто пишу одноразовые сценарии для преобразования или анализа файлов PNM особыми способами, которые были бы недоступны convert. Это относительно просто, потому что PNM - это в основном простейший растровый графический формат.

MJD
источник