ImageMagick - 更多png图像的展平

时间:2016-12-11 12:02:47

标签: imagemagick png alpha flatten

我有更多的PNG图像(比如img1.png,img2_transparent.png,img3.png),我希望它们能够展平成一个图像。

在我展平它们之前,我设置了(我希望第二张图像略微透明):

convert img2_transparent.png -alpha on -channel a -evaluate set 90%

然后我把它们弄平(订单是img1.png,img2_transparent.png,img3.png):

convert *.png -flatten out.png

结果还可以,第二个“图层”的不透明度为90%,但是整个图片(因此所有“三个”图层)都“亮了”。颜色不是很深,因为我没有将alpha设置为img2_transparent.png。

我该如何避免这种情况?

谢谢

1 个答案:

答案 0 :(得分:2)

如果您希望图像在生成的图像中以相同的小小显示,则通用公式是将每个图层的不透明度设置为

1/(1 + number of layers underneath)

其中基础层处于完全不透明度。然后第二个图像为不透明度1/2,第三个图像为不透明度1/3,第四个图像为不透明度1/4。

convert base.png \
   \( layer2.png -channel A -fx '0.5'   \) \
   \( layer3.png -channel A -fx '0.333' \) \
   \( layer4.png -channel A -fx '0.25'  \) ....

Cambridge in Colour网站上有一个很好的解释教程。向下滚动到使用图层在PHOTOSHOP中平均图像