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).

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

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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.