PIL中的透明PNG结果不透明

时间:2011-09-22 06:12:31

标签: python png python-imaging-library transparent

我一直在墙上撞了一会儿,所以也许有人可以提供帮助。

我正在使用PIL打开带有透明背景和一些随机黑色涂鸦的PNG,并尝试将其置于另一个PNG(没有透明度)的顶部,然后将其保存到第三个文件。

最后全黑,这很刺激,因为我没有说它是黑色的。

我已经通过其他帖子提出的多个修正测试对此进行了测试。图像以RGBA格式打开,它仍然搞砸了。

此外,该程序应该处理各种文件格式,这就是我使用PIL的原因。讽刺的是我尝试的第一种格式都是搞砸了。

任何帮助将不胜感激。这是代码:

from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff)) # xoff and yoff are 0 in my tests
img.save(outfile)

1 个答案:

答案 0 :(得分:37)

我认为你想要使用的是粘贴掩码参数。 请参阅docs,(向下滚动到paste

from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff), mask=layer) 
# the transparancy layer will be used as the mask
img.save(outfile)