Изменение размера изображений с ImageMagick к одному из нескольких аспектов

391
Henrik

У меня есть коллекция изображений, которые я обрабатываю с помощью 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 "$ratio\n" 
2
Используйте что-нибудь, чтобы прочитать измерение X / Y, вычислить соотношение и сопоставить его с выбором? Seth 7 лет назад 0
Да, это примерно то, что я хочу. Но я не знаю, как бы я связал это вместе. Я бы угадал exiftool, чтобы прочитать, а затем сделать некоторые вычисления? Henrik 7 лет назад 0
Вы также можете использовать [`identif`` (https://www.imagemagick.org/script/identify.php), который также имеет [страницу MAN] (https://linux.die.net/man/1/identify ) так что это может быть доступно. Размер изображения на самом деле не является частью информации exif, а является основой структуры изображения в большинстве известных мне форматов. Seth 7 лет назад 0

0 ответов на вопрос

Похожие вопросы