使用ImageMagick组合多个图像和文本

时间:2017-02-22 17:08:41

标签: imagemagick imagemagick-convert

我是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

我之前有更好的结果,但这主要是偶然的,并决定寻求专家的帮助。

最终结果应如下所示:Expected result

1 个答案:

答案 0 :(得分:0)

-page不尊重 - 重力。 -page始终相对于图像的西北角(左上角)。您也可以将-gravity和-geometry与-composite成对使用。创建一个图像,然后在正确的位置合成背景。重复该结果和另一个图像叠加。见http://www.imagemagick.org/Usage/layers/#convert