У меня есть коллекция изображений, которые я обрабатываю с помощью ImageMagick в скрипте bash. Он зацикливается на изображениях в папке. Большинство из них имеют формат 3:2, но некоторые имеют формат 4:3, 2:1 и 1:1. Тем не менее, они не все идеально обрезаны до соотношения сторон, что вызывает проблемы с макетом. Если у меня есть изображение 3,01:2, я бы хотел, чтобы оно было 3:2.
В настоящее время я использую команду изменения размера ниже. Ранее я использовал масштабирование и обрезку для принудительного заполнения 3:2, но это неправильно обрезает изображения с другими пропорциями.
convert -resize 300x200
Я хотел бы заставить изображения максимально приблизиться к списку размеров, чтобы изменить их размеры и обрезать. Я в порядке с определением размеров пикселей или (предпочтительно) пропорций.
Я собрал все это в скрипте bash, который дает мне кое-что, с чем я могу проверить, скажем, великолепный массив проверок if. Обратите внимание, что $ filename происходит из других источников:
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"