Eu tenho uma coleção de imagens que eu processo com o ImageMagick em um script bash. Faz um loop sobre as imagens em uma pasta. A maioria deles está no formato 3: 2, mas alguns são 4: 3, 2: 1 e 1: 1. No entanto, eles não são todos perfeitamente cortados em suas proporções, causando problemas de layout. Se eu tenho uma imagem que é 3.01: 2 eu gostaria que fosse forçada a 3: 2.
Atualmente, uso o comando de redimensionamento abaixo. Anteriormente, eu usava escalonamento e corte para preencher 3: 2, mas isso erroneamente corta imagens com outras proporções.
convert -resize 300x200
Eu gostaria de forçar as imagens para o mais próximo de uma lista de tamanhos, redimensionando e recortando para caber. Estou bem com a definição de tamanhos de pixels ou (de preferência) proporções de aspecto.
Eu montei isso no script bash, o que me dá algo que eu posso testar, digamos um arranjo glorioso de cheques. Observe que $ filename vem de outro lugar:
aspect=$(ffmpeg -i "_originals/$filename"*.jpg 2>&1 | egrep -o "DAR ([0-9]+:[0-9]+)" | cut -f2 -d " " | sed 's/:/ /')
ratio=$(echo $aspect |awk '{printf "%.2f", $1/$2}')
printf "$ratio\n"
Tags batch imagemagick aspect-ratio