Объединение нескольких изображений и текста с помощью ImageMagick

Я новичок в ImageMagick и пытаюсь добавить 3 разные метки к 3 разным (маленьким) изображениям, а затем вставить их поверх фонового изображения, каждое из которых находится в углу.

Все изображения и текстовые строки неизвестны заранее, и поэтому я пишу сценарий для этого. Моя последняя (неудачная) попытка:

convert -page +0+0 ${bg}.png \
    \( -page +0+0 -gravity south  -pointsize 16 \
    -stroke '#000C' -strokewidth 4 -annotate 0 "$label" \
    -stroke  none   -strokewidth 20 -fill white    -annotate 0 "$label" \) \
    \( -page +0+0 ${im1}.png \
    -stroke '#000C' -strokewidth 2 -annotate 0 "text1" \
    -stroke  none   -fill white    -annotate 0 "text1" \) \
    \( -page +${hor_offset}+0 {im2}.png \
    -gravity south  -pointsize 14 \
    -stroke '#000C' -strokewidth 2 -annotate 0 "text2" \
    -stroke  none   -fill white    -annotate 0 "text2" \) \
    \( -page +0+${ver_offset} ${im3}.png \
    -stroke '#000C' -strokewidth 2 -annotate 0 "text3" \
    -stroke  none   -fill white    -annotate 0 "text3" \) \
    +page -flatten out.png

Раньше у меня был лучший результат, но это было в основном случайно, и я решил обратиться за помощью к эксперту.

Конечный результат должен выглядеть примерно так: ожидаемый результат

1 ответ

-страница не уважает -гравитацию. -страница всегда относительно северо-западного угла (вверху слева) изображения. Вы можете поочередно использовать -gravity и -geometry с -composite попарно. Создайте одно изображение, затем составьте поверх фона в правильном месте. Повторите с этим результатом и другим изображением для наложения. См. http://www.imagemagick.org/Usage/layers/

Другие вопросы по тегам