我正在尝试在Python中使用PIL
/ Pillow
来打开PNG图像。你认为这很简单,但图像显示已损坏。
以下是一个示例图片:
我尝试使用Python 3.4和Pillow 2.7.0加载并显示它:
$ python
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL.Image
>>> image = PIL.Image.open(r'C:\Users\Administrator\Dropbox\Desktop\example.png')
>>> image.show()
>>>
我得到的是:
有谁知道为什么会这样以及如何解决它? (腐败不仅发生在我展示时,而且当我试图将其粘贴到另一个图像时,这是我最初的需要。)
答案 0 :(得分:4)
作为@wiredfool says,图像在显示之前被转换为RGB。不幸的是,这意味着alpha通道被简单地删除。您想要进行自己的转换,将图像与白色背景混合在一起。
Image.composite(image, Image.new('RGB', image.size, 'white'), image).show()
paste
的文档显示它也忽略了Alpha通道。您需要在两个位置指定图像,一个用于源,一个用于蒙版。
base.paste(image, box, image)
答案 1 :(得分:3)
Image.show()
将图像写为BMP(在Windows上),然后用查看器打开它。不幸的是,BMP编写器不保留alpha通道,因此您只是查看图像的RGB通道。