使用Imagemagick在半透明层中堆叠多个图像?

时间:2017-09-10 21:05:37

标签: imagemagick imagemagick-convert

使用一个或两个Imagemagick命令将多个(~10个)PNG图像堆叠为具有相同透明度且小于100%的图层的简单方法是什么?

源图像大小相同且不透明。

我尝试了几种变体:

composite -dissolve 50 in1.png in2.png -alpha Set out.png

我能得到的最好的结果是一张图像堆叠成一个透明的透明对象。通配符没有成功。我是Imagemagick的临时用户。我想我可以编写一个脚本或一个简单的程序来完成我想要的多个图像,但可能有一种简单的方法可以在Imagemagick中完成,这就是我希望找到的。

修改图像是可以的,例如使用带有通配符然后堆叠它们的命令将alpha设置为某个值。

2 个答案:

答案 0 :(得分:4)

在Imagemagick中有几种方法可以做到这一点,具体取决于你真正想要实现的目标。使用版本6.9.9.12 Q16 Mac OSX。

I have corrected the commands to fix a typo in the arguments of the third example and included Xenoid's suggested weights to make the first example below become equivalent to the other two so that each result is the same as averaging the images.

输入图片:

enter image description here

enter image description here

enter image description here

方法1:使用alpha通道

convert checks.jpg \( lena2.jpg -alpha set -channel alpha -evaluate multiply 0.5 \) \( zelda3.jpg -alpha set -channel alpha -evaluate multiply 0.3333 \) -flatten result0.png

enter image description here

方法2:等平均(-evaluate-sequence mean)

convert checks.jpg lena2.jpg zelda3.jpg -evaluate-sequence mean result1.png

enter image description here

方法3:加权平均(-poly)

convert checks.jpg lena2.jpg zelda3.jpg -poly "0.33333,1 0.33333,1 0.33333,1" result2.png

一对中的第一个数字是权重,第二个数字是指数,所以这里它将是1.值2将加权平方。

enter image description here

答案 1 :(得分:0)

平均是这样做的方法:

convert <file names or pattern> -evaluate-sequence mean averaged.png

在这里找到答案:

http://jamesbritt.com/posts/imagemagick-image-averaging.html