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
没有颜色配置文件,而{
另外,当读取图像中的像素数据时,banana.png
返回0
,而banana2.png
返回透明像素上的(0,0,0,0)
。同样,这只是一个观察。在
任何帮助都将不胜感激!在
运行我们的程序而不进行转换的结果是相同的:
我的猜测是与在没有颜色配置文件的图像上调用
convert("RGBA")
有关。PIL可能需要这些信息。在另外,您是否尝试过在不使用
convert()
的情况下调用show()
是否仍然损坏?在这是
PIL convert
源代码https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.convert当PIL显示带有
show
的图像时,它会删除所有透明度。最简单的方法就是传递那些透明区域中存在的任何颜色值。这将取决于创建映像的应用程序。在第一个图像在透明区域有随机的图像颜色,而第二个图像使用白色。在
相关问题 更多 >
编程相关推荐