Editando imagens na linha de comando

Então galera, vez ou outra seja por alguma documentação ou outra coisa eu preciso manipular uma série de imagens, é complicado você abrir o GIMP uma por uma e fazer o que você quer, para evitar esse trabalho todo eu costumo usar um comando do pacote ImageMagick chamado ‘convert’. O convert é um canivete suíço na manipulação de imagens via linha de comando, aqui eu vou mostrar apenas algumas operações como: redimensionar, recortar e converter imagens.

Então vamos fazer um caso de uso básico, suponha que você tenha 50 imagens e precise editar cada uma delas, você vai fazer via console com dois ou três comandos ou editar um a um os cinquenta arquivos!? Eu tenho mais o que fazer, então vamos lá!

Imagem original pode ser vista clicando aqui.

mulatinho@forrest:~$ ls
gtkfingerprint-01.png gtkfingerprint-10.png gtkfingerprint-19.png gtkfingerprint-28.png gtkfingerprint-37.png gtkfingerprint-46.png
gtkfingerprint-02.png gtkfingerprint-11.png gtkfingerprint-20.png gtkfingerprint-29.png gtkfingerprint-38.png gtkfingerprint-47.png
gtkfingerprint-03.png gtkfingerprint-12.png gtkfingerprint-21.png gtkfingerprint-30.png gtkfingerprint-39.png gtkfingerprint-48.png
gtkfingerprint-04.png gtkfingerprint-13.png gtkfingerprint-22.png gtkfingerprint-31.png gtkfingerprint-40.png gtkfingerprint-49.png
gtkfingerprint-05.png gtkfingerprint-14.png gtkfingerprint-23.png gtkfingerprint-32.png gtkfingerprint-41.png gtkfingerprint-50.png
gtkfingerprint-07.png gtkfingerprint-16.png gtkfingerprint-25.png gtkfingerprint-34.png gtkfingerprint-43.png
gtkfingerprint-08.png gtkfingerprint-17.png gtkfingerprint-26.png gtkfingerprint-35.png gtkfingerprint-44.png
gtkfingerprint-09.png gtkfingerprint-18.png gtkfingerprint-27.png gtkfingerprint-36.png gtkfingerprint-45.png

Lição 1: Recortando imagens.

mulatinho@forrest:~$ convert gtkfingerprint-01.png -crop 800x600+150x300 gtkfingerprint-01_cut.png
(recorte básico da imagem pegando apenas o quadro que desejamos.)

mulatinho@forrest:~$ for i in `ls gtkfingerprint-*png`; do 
convert $i -crop 800x600+150x300 `echo $i | sed -e 's/.png/_cut.png/'`; done
(recortando todas as imagens na mesma posição e do mesmo tamanho com um pouquinho de shellscript)

Abaixo podemos ver o resultado da saída de todas as imagens recortadas.

mulatinho@forrest:~$ ls *cut*png
gtkfingerprint-01_cut.png gtkfingerprint-11_cut.png gtkfingerprint-21_cut.png gtkfingerprint-31_cut.png gtkfingerprint-41_cut.png
gtkfingerprint-02_cut.png gtkfingerprint-12_cut.png gtkfingerprint-22_cut.png gtkfingerprint-32_cut.png gtkfingerprint-42_cut.png
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
gtkfingerprint-10_cut.png gtkfingerprint-20_cut.png gtkfingerprint-30_cut.png gtkfingerprint-40_cut.png gtkfingerprint-50_cut.png

Imagem recortada, depois de manipulada pode ser vista aqui.

Lição 2: Redimensionando imagens.

Muitas vezes também precisamos redimensionar imagens, neste caso eu precisei de imagens com 75% do tamanho (que eu criei com sufixo ‘_med.png’) para colocar dentro de umas tabelas num documento LaTeX afim de descrever o funcionamento da ferramenta e também precisei de thumbnail’s com cerca de 50% do tamanho original (que eu criei com o sufixo ‘_min.png’) das imagens para mostrar em um website. Ficou assim:

mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png -resize 75% gtkfingerprint-01_med.png
(redimensionando apenas uma imagem em torno de 75%)

mulatinho@forrest:~$ for i in `ls *cut.png`; do 
convert $i -resize 75% `echo $i | sed -e 's/_cut.png/_med.png/'`; done
(novamente fazendo o mesmo com todas as imagens, redimensionando-as com apenas um comando)

mulatinho@forrest:~$ for i in `ls *cut.png`; do 
convert $i -resize 50% `echo $i | sed -e 's/_cut.png/_min.png/'`; done
(e redimensionando todas as imagens com 50% do tamanho adicionando o sufixo 'min')

mulatinho@forrest:~$ for i in *pdf; do 
convert -thumbnail x200 $i[0] -flatten $i.jpg; done
(converte primeira pagina de pdfs em uma imagem)

Então galera, vez ou outra seja por alguma documentação ou outra coisa eu preciso manipular uma série de imagens, é complicado você abrir o GIMP uma por uma e fazer o que você quer, para evitar esse trabalho todo eu costumo usar um comando do pacote ImageMagick chamado ‘convert’. O convert é um canivete suíço na manipulação de imagens via linha de comando, aqui eu vou mostrar apenas algumas operações como: redimensionar, recortar e converter imagens.

Então vamos fazer um caso de uso básico, suponha que você tenha 50 imagens e precise editar cada uma delas, você vai fazer via console com dois ou três comandos ou editar um a um os cinquenta arquivos!? Eu tenho mais o que fazer, então vamos lá!

Imagem original pode ser vista clicando aqui.

mulatinho@forrest:~$ ls
gtkfingerprint-01.png gtkfingerprint-10.png gtkfingerprint-19.png gtkfingerprint-28.png gtkfingerprint-37.png gtkfingerprint-46.png
gtkfingerprint-02.png gtkfingerprint-11.png gtkfingerprint-20.png gtkfingerprint-29.png gtkfingerprint-38.png gtkfingerprint-47.png
gtkfingerprint-03.png gtkfingerprint-12.png gtkfingerprint-21.png gtkfingerprint-30.png gtkfingerprint-39.png gtkfingerprint-48.png
gtkfingerprint-04.png gtkfingerprint-13.png gtkfingerprint-22.png gtkfingerprint-31.png gtkfingerprint-40.png gtkfingerprint-49.png
gtkfingerprint-05.png gtkfingerprint-14.png gtkfingerprint-23.png gtkfingerprint-32.png gtkfingerprint-41.png gtkfingerprint-50.png
gtkfingerprint-07.png gtkfingerprint-16.png gtkfingerprint-25.png gtkfingerprint-34.png gtkfingerprint-43.png
gtkfingerprint-08.png gtkfingerprint-17.png gtkfingerprint-26.png gtkfingerprint-35.png gtkfingerprint-44.png
gtkfingerprint-09.png gtkfingerprint-18.png gtkfingerprint-27.png gtkfingerprint-36.png gtkfingerprint-45.png

Lição 1: Recortando imagens.

mulatinho@forrest:~$ convert gtkfingerprint-01.png -crop 800x600+150x300 gtkfingerprint-01_cut.png
(recorte básico da imagem pegando apenas o quadro que desejamos.)

mulatinho@forrest:~$ for i in `ls gtkfingerprint-*png`; do 
convert $i -crop 800x600+150x300 `echo $i | sed -e 's/.png/_cut.png/'`; done
(recortando todas as imagens na mesma posição e do mesmo tamanho com um pouquinho de shellscript)

Abaixo podemos ver o resultado da saída de todas as imagens recortadas.

mulatinho@forrest:~$ ls *cut*png
gtkfingerprint-01_cut.png gtkfingerprint-11_cut.png gtkfingerprint-21_cut.png gtkfingerprint-31_cut.png gtkfingerprint-41_cut.png
gtkfingerprint-02_cut.png gtkfingerprint-12_cut.png gtkfingerprint-22_cut.png gtkfingerprint-32_cut.png gtkfingerprint-42_cut.png
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
gtkfingerprint-10_cut.png gtkfingerprint-20_cut.png gtkfingerprint-30_cut.png gtkfingerprint-40_cut.png gtkfingerprint-50_cut.png

Imagem recortada, depois de manipulada pode ser vista aqui.

Lição 2: Redimensionando imagens.

Muitas vezes também precisamos redimensionar imagens, neste caso eu precisei de imagens com 75% do tamanho (que eu criei com sufixo ‘_med.png’) para colocar dentro de umas tabelas num documento LaTeX afim de descrever o funcionamento da ferramenta e também precisei de thumbnail’s com cerca de 50% do tamanho original (que eu criei com o sufixo ‘_min.png’) das imagens para mostrar em um website. Ficou assim:

mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png -resize 75% gtkfingerprint-01_med.png
(redimensionando apenas uma imagem em torno de 75%)

mulatinho@forrest:~$ for i in `ls *cut.png`; do 
convert $i -resize 75% `echo $i | sed -e 's/_cut.png/_med.png/'`; done
(novamente fazendo o mesmo com todas as imagens, redimensionando-as com apenas um comando)

mulatinho@forrest:~$ for i in `ls *cut.png`; do 
convert $i -resize 50% `echo $i | sed -e 's/_cut.png/_min.png/'`; done
(e redimensionando todas as imagens com 50% do tamanho adicionando o sufixo 'min')

https://mulatinho.files.wordpress.com/2015/04/softlivrev2-140610222148-phpapp02.pdf

Você pode ver o resultado da imagem com 75% do seu tamanho original clicando aqui.
Você pode ver o resultado da imagem com 50% do seu tamanho original clicando aqui.

As vezes temos situações em que uma imagem está numa qualidade muito grande, isso acontece com as fotos dos celulares mais modernos hoje em dia, e aí fica difícil da gente enviar pros nosso amigos e familiares um álbum cheio de imagens imensas por e-mail ou numa rede social, para facilitar isso a gente geralmente reduz a qualidade da imagem ou até mesmo a redimensiona como vimos acima.

Lição 3: Convertendo imagens.

Existem vezes em que simplesmente desejamos converter um formato de imagem, isso também é muito fácil de fazer com o convert que suporta vários formatos como: JPEG, GIF, PNG, BMP, etc. Vejamos alguns exemplos de conversão de imagens:

mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.bmp
(converte a imagem para o formato BMP, pior compressão, windows suqz)
mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.gif
(converte a imagem para o formato GIF, ótima compressão)
mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.jpg
(converte a imagem para o formato JPG, compressão legal)
mulatinho@forrest:~$ ls -l gtkfingerprint-01_cut.*
-rw-r--r-- 1 mulatinho mulatinho 673338 Feb  7 21:49 gtkfingerprint-01_cut.bmp
-rw-r--r-- 1 mulatinho mulatinho  25005 Feb  7 21:46 gtkfingerprint-01_cut.gif
-rw-r--r-- 1 mulatinho mulatinho  42447 Feb  7 21:50 gtkfingerprint-01_cut.jpg
-rw-r--r-- 1 mulatinho mulatinho  30433 Feb  7 21:19 gtkfingerprint-01_cut.png
mulatinho@forrest:~$ file -bi gtkfingerprint-01_cut.*
application/octet-stream; charset=binary
image/gif; charset=binary
image/jpeg; charset=binary
image/png; charset=binary

Links com alguns extras.

http://www.imagemagick.org/Usage/photos/
http://www.imagemagick.org/script/convert.php#usage

Bom, essa é a dica do mulato da semana rapaziada! Espero que aproveitem! 😉

Você pode ver o resultado da imagem com 75% do seu tamanho original clicando aqui.
Você pode ver o resultado da imagem com 50% do seu tamanho original clicando aqui.

As vezes temos situações em que uma imagem está numa qualidade muito grande, isso acontece com as fotos dos celulares mais modernos hoje em dia, e aí fica difícil da gente enviar pros nosso amigos e familiares um álbum cheio de imagens imensas por e-mail ou numa rede social, para facilitar isso a gente geralmente reduz a qualidade da imagem ou até mesmo a redimensiona como vimos acima.

Lição 3: Convertendo imagens.

Existem vezes em que simplesmente desejamos converter um formato de imagem, isso também é muito fácil de fazer com o convert que suporta vários formatos como: JPEG, GIF, PNG, BMP, etc. Vejamos alguns exemplos de conversão de imagens:

mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.bmp
(converte a imagem para o formato BMP, pior compressão, windows suqz)
mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.gif
(converte a imagem para o formato GIF, ótima compressão)
mulatinho@forrest:~$ convert gtkfingerprint-01_cut.png gtkfingerprint-01_cut.jpg
(converte a imagem para o formato JPG, compressão legal)
mulatinho@forrest:~$ ls -l gtkfingerprint-01_cut.*
-rw-r--r-- 1 mulatinho mulatinho 673338 Feb  7 21:49 gtkfingerprint-01_cut.bmp
-rw-r--r-- 1 mulatinho mulatinho  25005 Feb  7 21:46 gtkfingerprint-01_cut.gif
-rw-r--r-- 1 mulatinho mulatinho  42447 Feb  7 21:50 gtkfingerprint-01_cut.jpg
-rw-r--r-- 1 mulatinho mulatinho  30433 Feb  7 21:19 gtkfingerprint-01_cut.png
mulatinho@forrest:~$ file -bi gtkfingerprint-01_cut.*
application/octet-stream; charset=binary
image/gif; charset=binary
image/jpeg; charset=binary
image/png; charset=binary

Links com alguns extras.

http://www.imagemagick.org/Usage/photos/
http://www.imagemagick.org/script/convert.php#usage

Bom, essa é a dica do mulato da semana rapaziada! Espero que aproveitem! 😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: