这是我的问题:
import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
好吧,通过我的图像,您可以看到不同之处。
我的问题是:如何正确转换它?
图片:
结果:
注意:原始图像有一个半透明的辉光,结果有一个纯绿色的“辉光”
这是我的问题:
import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
好吧,通过我的图像,您可以看到不同之处。
我的问题是:如何正确转换它?
图片:
结果:
注意:原始图像有一个半透明的辉光,结果有一个纯绿色的“辉光”
此处报告了此问题:
https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode
2012 年 3 月,一条评论说它现在已在 PIL 的开发版本中修复。最新发布的版本是 1.1.7,因此在 1.2 发布之前无法使用此修复程序。PIL 更新非常缓慢,所以不要指望它很快就会出来。
不幸的是,您的 PNG 图像是 PIL 不能很好处理的一种类型 - 带有 alpha 通道的调色板图像。当您打开图像时,alpha 会被丢弃,并且无法取回。
这不同于通常的调色板透明度,其中调色板的一个索引用于表示完全透明的像素。
你可以使用scipy.misc.imread
:
img = scipy.misc.imread(filename, mode='RGBA')
img = Image.fromarray(img)
您的问题是您没有提供有关 PIL 应用作 ALPHA 通道来源的信息。
PIL 不会单独为您的图像添加透明度。
您希望图像的哪一部分透明?