ImageMagick复合在构图之前调整图像大小

时间:2011-03-28 23:14:49

标签: resize imagemagick composite watermark

我正在使用ImageMagick的复合命令将一个较小的图像组合成一个较大的图像。生成的图像应该是背景图像的大小(较大的图像)。另外,我希望较小的一个总是具有相同的大小。

目前我有这么简单的调用:

composite -gravity SouthWest watermark.png photo.jpg photo.jpg

问题是我为不同的照片获得了不同大小的水印,我不知道如何将其设置为固定大小。我尝试了-resize,-geometry和-size选项,但它们都改变了结果图像的大小,而不是水印。

2 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,并使用复合命令尝试了各种不同的选项,试图让它工作。最终我不得不切换到使用convert命令,并能够使用以下方法调整重力:

convert photo.jpg -gravity SouthWest -draw "image Over 0,0,200,200 watermark.png" photo.jpg

-draw的数字参数是left,top,width,height。见http://www.imagemagick.org/script/command-line-options.php?#draw。所以这个解决方案不再使用复合命令,但希望能给你你想要的东西。

答案 1 :(得分:1)

<强> Hurraaay!

我从ImageMagick手册中的一个小注释中找到了答案,其中-resize '1x1<'实际上是一个无操作(和SHORT-CIRCUIT)用于调整大小操作。

所以,如果我有一个1200x1200的image.jpg,我用600x600 copyright.png覆盖它,使用这个命令:

composite -dissolve 50% -gravity center image.jpg copyright.png result.jpg

根据copyright.png。

,我的图片大小调整为600x600

但是,如果我执行以下操作:

composite -resize '1x1<' -dissolve 50% -gravity center image.jpg copyright.png result.jpg

我的输出图像保留其原始尺寸1200x1200。