Как отразить файлы изображений через командную строку?
То, что я хочу сделать, очень просто. У меня есть file.png
, который я хочу отразить, то есть результат должен быть "отражением" исходного изображения.
Я знаю, что большие инструменты, такие как GIMP и InkScape, могут это сделать, но я надеюсь на утилиту командной строки, что-то вроде convert
(который, к сожалению, не имеет такой возможности, или, по крайней мере, это не упоминается в man
страница).
2 ответа
Из быстрого прочтения этого, по-видимому convert
называет эту опцию -flop
для горизонтального зеркалирования и -flip
для вертикали. Все, что мне нужно было сделать, это
convert -flop input.png output.png
Если вы хотите перезаписать на месте, и у вас есть куча файлов изображений в той же папке, mogrify
из набора ImageMagick, кажется, самый простой способ достичь этого:
# mirror in the vertical axis:
mogrify -flip *.jpg
# mirror in the horizontal axis:
mogrify -flop *.jpg
Для этой конкретной задачи convert
это, вероятно, лучший способ пойти, но для такого рода вещей я часто использую netpbm
библиотека, которую можно установить (как и следовало ожидать) с apt install netpbm
, затем
pngtopnm input.png | pnmflip -lr \
| (other transformations if desired) \
| pnmtopng > output.png
Для этой задачи это излишне, но я часто пишу одноразовые сценарии для преобразования или анализа файлов PNM особыми способами, которые были бы недоступны в convert
, Это относительно просто, потому что PNM - это в основном простейший растровый графический формат.