Подтвердить что ты не робот

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

Есть ли способ автоматического изменения размера наложенного изображения в соответствии с размером фона при наложении изображений с помощью ImageMagick? Теперь я использую следующий код:

композитный overlay.jpeg background.jpeg result.jpeg

Проблема заключается в том, что иногда оверлей и фон имеют разные размеры, и я хотел бы соответственно изменить размер наложения (сохраняя соотношение сторон) и поместить его в центр. Есть ли способ сделать это?

4b9b3361

Ответ 1

Прежде всего, наложение и фон не должны быть одинакового размера для работы композита. Например, учитывая эти два изображения:

sydney.png(352x288):

sydney

jet2.png(128x129):

jet2

Попробуйте выполнить следующие команды:

convert -size 352x288 -composite sydney.png jet2.png -geometry 64x64+176+144 -depth 8 test.png

convert -size 352x288 -composite sydney.png jet2.png -geometry 32x32+176+144 -depth 8 test.png
  • -size указывает размеры выходного изображения
  • -geometry указывает размеры и расположение переднего плана

Это то, что я получаю для первой команды:

result

ИЗМЕНИТЬ

Здесь bash script, чтобы сделать все это для вас в одной строке:

#!/bin/bash
if [ -z "$3" ]
then
    echo "usage: $0 background.png foreground.png output.png"
    exit 1
fi
bg_size=`identify -format '%wx%h' "$1"`
convert -size $bg_size -composite "$1" "$2" -geometry $bg_size+0+0 -depth 8 "$3"