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

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

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

8
задан 15 July 2018 в 20:58

3 ответа

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

convert -flop input.png output.png
59
ответ дан 15 July 2018 в 20:58

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

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

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

4
ответ дан 15 July 2018 в 20:58

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

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

# mirror in the horizontal axis:
mogrify -flop *.jpg
2
ответ дан 23 November 2019 в 05:24

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

Похожие вопросы: