Jak wykonać kopię lustrzaną plików obrazów za pomocą wiersza polecenia?

13

To, co chcę zrobić, jest bardzo proste. Mam taki file.png, który chcę odzwierciedlać, tzn. Wynik powinien być „odbiciem” oryginalnego obrazu.

Wiem, że duże narzędzia takie jak GIMP i InkScape mogą to zrobić, ale mam nadzieję na narzędzie wiersza polecenia, coś podobnego convert(które niestety nie wydaje się mieć takiej opcji, a przynajmniej nie jest wymienione na manstronie).

Sergiy Kolodyazhnyy
źródło

Odpowiedzi:

26

Z szybkiego przeczytania tego , najwyraźniej convertwywołuje tę opcję -flopdla lustrzanego odbicia poziomego i -flippionowego. Wszystko, co musiałem zrobić, to

convert -flop input.png output.png
Sergiy Kolodyazhnyy
źródło
1
sudo apt-get install imagemagick
tonka
Przeczytałem coś o zmianie convertna magick. Więc jeśli coś pójdzie nie tak, spróbuj magick.
Sigur
3

Jeśli chcesz zastąpić w miejscu i masz mnóstwo plików obrazów w tym samym folderze, mogrifyz pakietu ImageMagick wydaje się najłatwiejszym sposobem na osiągnięcie tego:

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

# mirror in the horizontal axis:
mogrify -flop *.jpg
EA304GT
źródło
2

Do tego konkretnego zadania convertjest prawdopodobnie najlepsza droga, ale do tego rodzaju rzeczy często używam netpbmbiblioteki, którą można zainstalować (jak można się spodziewać) apt install netpbm. Następnie

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

W przypadku tego zadania jest to przesada, ale często piszę jednorazowe skrypty, które przekształcają lub analizują pliki PNM w dziwny sposób, w który nie byłyby dostępne convert. Jest to stosunkowo łatwe, ponieważ PNM jest właściwie najprostszym możliwym do wyobrażenia formatem bitmapy.

MJD
źródło