imagemagick复合材料,最小宽度但高度不同

时间:2014-05-22 20:23:52

标签: imagemagick

我想要一个背景图像,其中另一个图像合成在顶部到底部边缘。最终图像将具有最大宽度(例如,1000px,但可能更小)。合成图像的宽度可以缩小,但总是需要在底部。我似乎无法通过imagemagick在一个命令中找到完成这一切的方法。

以下是一些虚拟图像作为例子。

要在背景中合成的图像: composite image

以下是我想要的最终产品的两个例子: wide-ish 这个宽960像素,但合成的图像是齐平的底部和左/右边缘。

narrow 这个很窄,但是合成的图像缩小了,使其向下/向左/向右冲洗。

由于图像的大小和宽高比可能不同,因此我不需要进行某种外部计算来缩放和定位合成图像。我觉得在imagemagick中这应该是可能的,对吗?

1 个答案:

答案 0 :(得分:1)

预先确定背景图像的宽度是最容易的。

#!/bin/bash
# Get background width
WIDTH=`convert background.jpg -format "%w" info:`
# Apply composite
convert background.jpg \
        \( arrows.png -resize "${WIDTH}x" \) \
        -alpha set \
        -gravity South \
        -compose ATop \
        -composite output.png

\( arrows.png -resize "${WIDTH}x" \)是匹配宽度的子流程,-gravity South会将箭头固定在底部。

rose: logo: wizard: