Duas coisas a considerar:
- Redimensionamento simples com ou sem conversão de proporção
- Corte com conversão de ração de aspecto
Eu abordo cada um por sua vez:
1. Redimensionamento simples com ou sem conversão de proporção
Por padrão, imagemagick
manterá a proporção de imagem preexistente de uma imagem durante as conversões. Usando esta imagem de teste:
que convenientemente tem as dimensões de 100x100, uma tentativa de redimensionar para 300x150 com esta sintaxe falhará silenciosamente :
convert test.png -resize 300x150 300_test.png
e produzirá uma imagem 150x150 :
Para forçar o imagemagick
a produzir sua imagem de proporção 2: 1, a seguinte sintaxe ligeiramente diferente é necessária:
convert test.png -resize 300x150\! distort.png
E isso alcança uma proporção de 2: 1, com distorção da imagem original, é claro:
2. Recorte com conversão de ração de aspecto
Se você preferir simplesmente cortar uma imagem automaticamente para uma proporção especificada, a maneira mais fácil é usar uma das Scripts ImageMagick de Fred: 'Aspectcrop' . O uso em nossa imagem de teste é simplesmente:
./aspectcrop -a 2:1 test.png Fred_wins.png
e a imagem resultante foi cortada com sucesso para uma proporção de 2: 1:
A outra opção a ser manipulada é -g gravity
, que define qual parte da imagem é usada para o recorte. O padrão é center, todas as opções são:
- centro (c)
- norte (n)
- sul (es)
- leste (e)
- oeste (w)
- noroeste (nw)
- nordeste (ne)
- sudoeste, (sw)
- sudeste (se)
Então, para dar um exemplo disso usando norte :
./aspectcrop -a 2:1 -g n test.png north.png
Os resultados são:
Se você precisasse usar este script para um carregamento em lote de imagens em um único diretório, você poderia usar um loop bash 'for'. Primeiro coloque o script corretamente e configure-o para executável:
sudo mv aspectcrop /usr/local/bin
sudo chmod +x /usr/local/bin/aspectcrop
Isso facilita muito o uso do script. Em seguida, execute o loop 'for' a partir de um diretório de imagens:
for i in *.png
do
aspectcrop -a 2:1 -g n "$i" "${i%.png}_cropped.png"
done
Esse loop pode ser variado de acordo com o tipo de arquivos de entrada e saída, locais diferentes, etc. Você também pode produzir uma sintaxe semelhante que pesquisará recursivamente por imagens. Muitas possibilidades ...
Eu acho que é tudo muito legal:)
Referências: