PIL Image.open 创建损坏的图像
PIL Image.open creates corrupted image
Python 的 PIL
模块在过去的项目中对我来说工作正常,但我注意到某些图像在打开和显示时颜色已损坏,而对于其他图像则是美好的。但是,保存它对两个图像都很好。为什么这只适用于某些图像?
示例:
from PIL import Image
img = Image.open("banana.png")
img.convert("RGBA")
img.show()
img.save('out.png')
img1 = Image.open("banana2.png")
img1.convert("RGBA")
img1.show()
img1.save('out2.png')
原始图片
显示图片
已保存图片
此外,我只注意到两个图像之间的一个差异; banana.png
没有颜色配置文件,而 banana2.png
有。两者也位于同一目录中。我不确定这是否与问题有关;这只是一个观察。
此外,当读取图像中的像素数据时,banana.png
returns 0
而 banana2.png
returns (0,0,0,0)
在透明像素上。同样,这只是一个观察结果。
原始文件信息
如有任何帮助,我们将不胜感激!
编辑:
运行 我们的程序 没有 转换有相同的结果:
显示图片:
我猜这与在没有颜色配置文件的图像上调用 convert("RGBA")
有关。 PIL 可能需要该信息。
P.S。您是否尝试过在没有 convert()
的情况下调用 show()
时查看它是否仍然损坏?
这是 PIL convert
源代码 https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.convert
当 PIL 显示带有 show
的图像时,它会删除所有透明度。最简单的方法是传递那些透明区域中存在的任何颜色值。这将取决于创建图像的应用程序。
你的第一张图片在透明区域有随机的图片颜色,而第二张图片使用白色。
Python 的 PIL
模块在过去的项目中对我来说工作正常,但我注意到某些图像在打开和显示时颜色已损坏,而对于其他图像则是美好的。但是,保存它对两个图像都很好。为什么这只适用于某些图像?
示例:
from PIL import Image
img = Image.open("banana.png")
img.convert("RGBA")
img.show()
img.save('out.png')
img1 = Image.open("banana2.png")
img1.convert("RGBA")
img1.show()
img1.save('out2.png')
原始图片
显示图片
已保存图片
此外,我只注意到两个图像之间的一个差异; banana.png
没有颜色配置文件,而 banana2.png
有。两者也位于同一目录中。我不确定这是否与问题有关;这只是一个观察。
此外,当读取图像中的像素数据时,banana.png
returns 0
而 banana2.png
returns (0,0,0,0)
在透明像素上。同样,这只是一个观察结果。
原始文件信息
如有任何帮助,我们将不胜感激!
编辑:
运行 我们的程序 没有 转换有相同的结果:
显示图片:
我猜这与在没有颜色配置文件的图像上调用 convert("RGBA")
有关。 PIL 可能需要该信息。
P.S。您是否尝试过在没有 convert()
的情况下调用 show()
时查看它是否仍然损坏?
这是 PIL convert
源代码 https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.convert
当 PIL 显示带有 show
的图像时,它会删除所有透明度。最简单的方法是传递那些透明区域中存在的任何颜色值。这将取决于创建图像的应用程序。
你的第一张图片在透明区域有随机的图片颜色,而第二张图片使用白色。