2012-06-06 64 views
1

我想使用Imagemagick中的“convert”(或其他)来组合两个不同大小的图像。我希望他们在左下角对齐。例如,我有两个图像:Imagemagick命令行,结合两个不同大小的图像

trans_alpha.png(透明42x37空白图像) 和shadow.png(一个68x23图像,其欲覆盖在trans_alpha.png左下角对齐)

我想要的结果是一个68x37的图像,注意这些大小只是示例,我不想把大小放入命令行,我只是想使用输入图像的大小。

我试过很多没有成功的组合:

尝试no。 776(靠近,但对齐左上角,而不是左下角):

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

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

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

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

保罗

回答

2

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

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

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

pbm(5)手册页(例如在Debian/Ubuntu系统中的netpbm软件包中)可以很好地编写并清楚地解释该过程。

+0

谢谢,有趣的选择,但比较理想的状况,我想一个基于Imagemagick的解决方案,而不必写一个脚本/程序来做我想做的事情。当然,如果我没有看到PBM,那么对于很多事情来说这是一个有用的想法,再次感谢。 –

+0

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

0

我当时无法测试,但你可以使用-page与层等等这样的事情可能会奏效,但你可能需要计算的Y轴偏移:

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

您可能不需要-background无

+0

Thanks @Bonzo,我试过了(有/没有“-background none”),但偏移似乎没有区别不管我给予什么样的价值(我之前正在尝试“-0-0”) - 总是得到同样的结果。 –

+0

你需要在“shadow.png”之前放置-page。 – 2014-05-26 08:21:26

相关问题