PIL图像模式"P" - >"RGBA"

mDr*_*idd 11 python mode converter python-imaging-library

这是我的问题:

import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
Run Code Online (Sandbox Code Playgroud)

好吧,有了我的形象,你可以看到差异.
我的问题是:如何正确转换它?

图片: 原版的

结果: 结果

注意:原始图像具有半透明的光晕,结果具有稳定的绿色"发光"

jte*_*ace 7

这个问题在这里报道:

https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode

在2012年3月,评论说它现在已经在PIL的开发版中得到修复.最新发布的版本是1.1.7,因此在1.2发布之前修复程序将无法使用.PIL更新速度非常慢,所以不要指望它很快就会出现.


Mar*_*som 5

不幸的是,您的PNG图像是PIL处理得不好的一种-具有alpha通道的调色板图像。当您打开图像时,alpha会被丢弃,无法将其恢复。

这与通常的调色板透明度不同,在常规的调色板透明度中,调色板的一个索引用于表示完全透明的像素。