Моя ошибка. Соотношения сторон, такие как 4: 3 в ImageMagick -extent, будут обрезаться, а не заполняться
Смотрите мой скрипт bash unix "aspectpad" по адресу http://www.fmwconcepts.com/imagemagick/index.html,, который делает то, что вы хотите, я думаю.
Тем не менее, вот частичное решение, как это сделать. Но это работает только для ввода в ландшафтном режиме. Также только с ImageMagick 7 из-за использования встроенных аргументов для -extent. Вам придется изменить его для портретного режима.
Ввод (аспект 2: 1 = 2/1 = 2):
magick barn_2to1.jpg -set option:wd "%[fx:(4/3)>(w/h)?(4/3*h):w]" -set option:ht "%[fx:(4/3)>(w/h)?h:(w/(4/3))]" -gravity center -background black -extent "%[wd]x%[ht]" result.jpg
Вывод (аспект 4: 3 = 4/3 = 1,33):
Обратите внимание, что я использовал черный фон, чтобы он был здесь виден. Измените цвет на любой другой.
Если входной альбомный формат больше 4: 3 (4/3), он будет накладываться сверху / снизу. Если формат входного пейзажа меньше 4: 3, он будет дополняться влево / вправо.
Ввод (аспект = 1: 1 = 1/1 = 1):
magick lena.jpg -set option:wd "%[fx:(4/3)>(w/h)?(4/3*h):w]" -set option:ht "%[fx:(4/3)>(w/h)?h:(w/(4/3))]" -gravity center -background black -extent "%[wd]x%[ht]" result2.jpg