ImageMagick - Manipulando imagens pelo terminal

Que dá pra manipular texto pelo terminal,todo mundo tá cansado de saber que dá e não faltam opções, sed, awk, cut, tr… mas e imagens? Dá também, pra isso existe o ImageMagick, ele suporta 200 formatos de imagens dentre os quais obviamente estão JPG e PNG, e da pra fazer muita coisa como: cortar, mover, colorizar, descolorizar, deixar em tons de sépia, escrever textos, desenhar formas geométricas… enfim, tudo que você faria no GIMP/Photoshop, MAS em linha de comando.

Obtendo o ImageMagick

Ele está disponível nos repositórios de todas as distros mas caso queira “experimentar sem compromisso” ele está disponível via AppImage também e vai ser essa versão que nós vamos usar:

Baixe com esse comando:

wget "https://github.com/ImageMagick/ImageMagick/releases/download/7.0.8-49/ImageMagick-ec9498c-gcc-x86_64.AppImage" -O ImageMagick.AppImage

Deixe executável com esse:

chmod +x "ImageMagick.AppImage"

E pronto, só isso

Exemplos de efeitos:

Pra “fins didáticos” vou usar a primeira imagem legal que eu vi no Pixabay que foi a dessa moça. No geral o uso do ImageMagick se resume em:

./ImageMagick.AppImage "<imagem>" <parâmetros> "<imagem de saida>"

Então para fins de simplificação, irei colocar apenas os parâmetros passados. A imagem original para fins de comparação é essa:

face-1146038_640

Sem opções:

Nessa seção estão efeitos que não possuem opções de variação

1. Preto e branco (escala de cinza):

Parâmetros:

-set colorspace Gray -separate

Resultado:

preto-e-branco|2 12x320,100%

2. Cores invertidas (Negativo):

Parâmetro:

-negate

Saída:

presultado

Com uma opção:

Nessa seção, modifique o número para obter diferentes intensidades de efeito

3. Efeito desenho:

Parâmetros:

-negate -edge 1 -negate

Saída:

presultado

4. Efeito de pintura a óleo

Parâmetros:

-paint 1

Saída:

presultado

5. Moldura elevada:

-raise 3

Saída:

presultado

6. O inverso da Anterior:

-raise 3

Saída:
presultado

6. Efeito “spread”

-spread 2

Saída:
presultado

Efeitos Com porcentagem

Nessa seção, modifique o número para obter diferentes intensidades de efeito como na anterior mas lembre-se de manter o sinal de % ao lado direito do número

6. Efeito “Tons de sépia”

-sepia-tone 80%

Saída:

presultado

6. Redimesionar em escala

-resize 85%

Saída:

presultado


Conclusão + “Projeto final”

É impossível listar tudo o que dá pra fazer com essa incrível ferramenta, meu objetivo com esse post foi apresentar a ferramenta e mostrar um pouco da sua capacidade com comando beeem simples mas saiba que ela não se limita a isso e dá pra fazer coisas muuuuito mais complexas que pra não deixar o texto muito denso não vou mostrar aqui, mas pra finalizar vamos fazer um efeito mais “elaborado” combinando duas imagens com o efeito de foto antiga, as únicas imagens usadas serão a de exemplo acima e e essa ambas em domínio público:

# Adicionar o efeito de sépia
./ImageMagick.AppImage "foto.jpg" -sepia-tone 80% "foto-sepia.jpg"
# Adicionar o efeito de foto antiga
./ImageMagick.AppImage "foto-sepia.jpg" -bordercolor white -background black  +polaroid  foto-impressa.png
# Espelhar a imagem horizontalmente
./ImageMagick.AppImage foto-impressa.png -flop foto-impressa.png
# Sobrepor as duas imagens
./ImageMagick.AppImage composite -gravity center "foto-antiga.png" "foto-de-fundo.jpg" resultado.jpg

O resultado pode ser visto abaixo:

A referência de linha de comando pode ser encontrada aqui

No mais é isso, espero que esse dica/tutorial possa ser útil, obrigado por ter lido até aqui, até a próxima :stuck_out_tongue_winking_eye:

5 curtidas