Como espelhar arquivos de imagem via linha de comando?

13

O que eu quero fazer é muito simples. Eu tenho um file.png, que eu quero espelhar, ou seja, o resultado deve ser um "reflexo" da imagem original.

Sei que grandes ferramentas como o GIMP e o InkScape podem fazer isso, mas espero um utilitário de linha de comando, algo como convert(que infelizmente não parece ter essa opção, ou pelo menos não é mencionado na manpágina).

Sergiy Kolodyazhnyy
fonte

Respostas:

26

Da leitura rápida disso , aparentemente convertchama essa opção -flopde espelhamento horizontal e -flipvertical. Tudo o que eu precisava fazer era

convert -flop input.png output.png
Sergiy Kolodyazhnyy
fonte
1
sudo apt-get install imagemagick
tonka
Eu li algo sobre mudar convertpara magick. Portanto, se algo der errado, tente magick.
Sigur 07/07
3

Se você deseja substituir no local e tiver vários arquivos de imagem na mesma pasta, a mogrifypartir do pacote ImageMagick parece ser a maneira mais fácil de conseguir isso:

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

# mirror in the horizontal axis:
mogrify -flop *.jpg
EA304GT
fonte
2

Essa tarefa em particular converté provavelmente o melhor caminho a percorrer, mas, para esse tipo de coisa, eu frequentemente uso a netpbmbiblioteca, que é instalável (como seria de esperar) apt install netpbm. Então

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

Para esta tarefa, é um exagero, mas muitas vezes me pego escrevendo scripts únicos para transformar ou analisar arquivos PNM de maneiras peculiares que não estariam disponíveis no convert. Isso é relativamente fácil, porque o PNM é praticamente o formato gráfico de bitmap mais simples que se possa imaginar.

MJD
fonte