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

То, что я хочу сделать, очень просто. У меня есть 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 - это в основном простейший растровый графический формат.

Другие вопросы по тегам