Imagemagick命令行,组合两个不同大小的图像

时间:2012-06-06 00:19:49

标签: command-line imagemagick

我想使用Imagemagick的“转换”(或其他)来组合两个不同大小的图像。我希望它们在左下角对齐。例如,我有两张图片:

trans_alpha.png(透明的42x37空白图片) and shadow.png(68x23图像,我想覆盖在左下方对齐的trans_alpha.png上)

我想要的结果是68x37图像,注意这些尺寸仅仅是示例,我不想将尺寸放入命令行,我只想使用尺寸来自输入图像。

我尝试了很多组合而没有成功:

尝试没有。 776(关闭,但对齐到左上角,而不是左下角)..:

convert trans_alpha.png -background none shadow.png -gravity SouthWest -layers merge  +repage result.png

尝试没有。 841(正确对齐,但结果图像不够宽)...

convert trans_alpha.png shadow.png -gravity SouthWest -composite result.png

希望这是有道理的。 谢谢,

3 个答案:

答案 0 :(得分:2)

回答我自己的问题(由www.imagemagick.org上的聪明人提供)

convert \
  trans_alpha.png shadow.png \
 -flip \
 -background none \
 -mosaic \
 -flip \
  result.png

答案 1 :(得分:1)

Imagemagick包含许多有用的转换,但偶尔仍然缺少您需要的转换。由于您的原始图像是PNG无损位图,因此您可以将它们转换为长格式PBM或相关格式,如长格式PPM。这些形式的优点在于它们以纯文本的形式逐个像素地表示整个图像,可以编写程序 - 通常是相当短的程序 - 以任何方式处理。作为存储格式,PBM和PPM效率极低,但同样也非常容易操作,这就是你想要的。

pbm(5)联机帮助页(可在netpbm程序包中的Debian / Ubuntu系统上找到)编写得很好,并清楚地解释了该过程。

答案 2 :(得分:0)

我目前无法测试,但您可以对图层使用-page,这样可能会有效,但您可能需要计算Y偏移量:

convert \
   trans_alpha.png \
  -background none \
   shadow.png \
  -page +0+10 \
  -layers merge \
  +repage \
   result.png

您可能不需要-background none