Python PIL不保存透明度

Python PIL不保存透明度,python,png,python-imaging-library,Python,Png,Python Imaging Library,第一个图像有一个透明的背景,但当我保存它时,透明度消失了(背景是白色的) 我做错了什么?可能图像已被索引(PIL中的模式“p”),因此透明度不是在PNG alpha通道中设置的,而是在元数据信息中设置的 您可以使用以下代码获取透明背景调色板索引: from PIL import Image img = Image.open('1.png') img.save('2.png') 图像信息是一个字典,因此您可以检查它以查看它拥有的信息: 例如:如果您打印它,您将得到如下输出: from PIL

第一个图像有一个透明的背景,但当我保存它时,透明度消失了(背景是白色的)


我做错了什么?

可能图像已被索引(PIL中的模式“p”),因此透明度不是在PNG alpha通道中设置的,而是在元数据信息中设置的

您可以使用以下代码获取透明背景调色板索引:

from PIL import Image

img = Image.open('1.png')
img.save('2.png')
图像信息是一个字典,因此您可以检查它以查看它拥有的信息:

例如:如果您打印它,您将得到如下输出:

from PIL import Image

img = Image.open('1.png')
png_info = img.info
img.save('2.png', **png_info)

保存在那里的信息会因创建原始PNG的工具而异,但对您来说重要的是“透明度”键。在示例中,它表示调色板索引“7”必须视为透明。

您可以始终强制将类型设置为“RGBA”


当然,但这样他就不会从格式上生成与原始图像相同的图像。对于第二行,您需要“img=img.convert('RGBA')”。成功了,谢谢!但奇怪的是,这些属性并没有自动保存。
{'transparency': 7, 'gamma': 0.45454, 'dpi': (72, 72)}
img = Image.open('1.png')
img.convert('RGBA')
img.save('2.png')