Python PIL中的透明PNG原来不是透明的

Python PIL中的透明PNG原来不是透明的,python,png,python-imaging-library,transparent,Python,Png,Python Imaging Library,Transparent,我用这个把头撞到墙上已经有一段时间了,所以也许有人可以帮我 我正在使用PIL打开一个带有透明背景和一些随机黑色涂鸦的PNG,并尝试将其放在另一个PNG(没有透明度)的顶部,然后将其保存到第三个文件中 它最后全黑了,这很恼人,因为我没有告诉它是黑的 我已经用其他帖子中提出的多个修复方案对此进行了测试。图像以RGBA格式打开,但仍然混乱不堪 另外,这个程序应该处理各种各样的文件格式,这就是我使用PIL的原因。具有讽刺意味的是,我尝试的第一种格式完全是扭曲的 任何帮助都将不胜感激。代码如下: from

我用这个把头撞到墙上已经有一段时间了,所以也许有人可以帮我

我正在使用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)

我认为您要使用的是粘贴掩码参数。 请参阅(向下滚动至粘贴


好极了!PIL文档不清楚掩码是什么——首先我认为它是一个数字(因为他们说的是“如果掩码为0,如果掩码为255”),然后我认为它类似于box参数,而是用来确定要复制image参数的哪一部分。现在它更有意义了,谢谢!你帮了我很大的忙。感谢you@Claudiu哦,到底为什么。可能是复制品
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)