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