📌 3 de Junho, 2016
Bash & ImageMagick: Cortar Imagens
Apple · Informática · Linux
Automatizar tarefas é o dia-a-dia de qualquer administrador de sistemas, hoje explico como podemos cortar grandes quantidades de imagens de forma rápida recorrendo ao terminal. Partimos dos seguintes pressupostos:
- Temos diversas imagens numa pasta;
- Todas as imagens têm as mesmas dimensões;
Para estas operações uma boa solução é o ImageMagick, uma suite de ferramentas command-line para criar, editar e converter imagens em diversos formatos. Disponível para sistemas Linux, Mac OSX, iOS e Android.
No meu caso, instalei num Mac via Homebrew com o seguinte comando:
brew install imagemagick
No Debian:
apt-get install imagemagick
Remover x pixeis de todas as extremidades
Com a opção -shave
é possível definir um número de pixeis a remover de forma equitativa de todas as extremidades da imagem. Exemplo:
convert *.jpg -shave 50 output.jpg
Recortar uma região das imagens
A opção -crop
é utilizada para recortar uma região de interesse das imagens. O seguinte comando irá remover 50px do topo da imagem e outros 50px a partir da sua esquerda:
convert *.jpg -crop +50+50 output.jpg
Podemos também remover da direita e do fundo trocando os sinais +
por -
:
convert *.jpg -crop -50-50 output.jpg
Recortar uma região personalizada a partir de duas extremidades
Normalmente procuramos recortar uma região personalizada a partir de duas extremidades, ou seja, excluir a parte verde da seguinte imagem, ficando apenas com o quadrado cinzento de 200px:
Para isto utilizamos combinamos as dimensões do quadrado cinzento com a técnica anterior:
convert *.jpg -crop 200x200+50+50 output.jpg
E ficaremos só com o quadrado cinzento. Muito útil!
Bónus: Juntar imagens cortadas
Imaginemos que temos 10 imagens para cortar com a técnica anterior e queremos junta-las numa só posteriormente de forma vertical. Para isto temos a opção -append
:
convert *.jpg -crop 200x200+50+50 -append output.jpg
Podemos também juntar da esquerda para a direita substituindo -append
por +append
.
Nota: A opção *.jpg
nos comandos procura todas as imagens com extensão jpg. Isto poderá ser mudado para outra ou para o nome de um ficheiro caso apenas pretendermos cortar uma imagem.