PIL图像模式“P”->“RGBA”

2024-06-16 10:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的问题:

import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")

好吧,用我的图像你可以看出区别。
我的问题是:如何正确地转换它?

图片:original

结果:result

注意:原始图像具有半透明的辉光,结果为纯绿色“辉光”


Tags: 图像imageimportconvertpngmodesaveshow
3条回答

此问题已在此处报告:

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被扔掉了,没有办法把它拿回。

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

您可以使用^{}

img = scipy.misc.imread(filename, mode='RGBA')
img = Image.fromarray(img)

相关问题 更多 >