这是我的问题:
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通道会被丢弃,没有办法恢复。
这与通常的调色板透明度不同,通常使用调色板中的一个索引来表示完全透明的像素。
你的问题在于没有提供PIL应该使用什么作为ALPHA通道的来源信息。
PIL本身不会为图像添加透明度。
你想要哪部分图像是透明的?