python PIL:在没有Alpha通道的情况下创建PNG图像时显示问题

时间:2015-03-04 15:25:58

标签: python image png python-imaging-library

我正在使用Python和PIL创建一个不透明的RGB图像并将其保存为PNG格式。

但是当我显示它时,每个像素的RGB会改变其正确的值。 (我通过捕获没有比例的屏幕截图进行测试,并在此屏幕截图中打印出RGB值)原始图像的RGB值完全正确,只有屏幕截图中的值更改。

im = Image.new("RGB",(length,length),"black")
set RGB value for certain point
im.save(image.png,"PNG")

但是,如果我以RGBA格式创建图像,而不设置Alpha值并将其另存为PNG格式,则屏幕截图上的RGB值完全正确。

im = Image.new("RGBA",(length,length),"black")
set RGB value for certain point
im.save(image.png,"PNG")

我想知道为什么会出现差异,因为它不是透明图像。

我询问Quora和discussed with someone谁告诉我这不是PNG的问题/特征。

我还查看了与PNG保存相关的PIL源代码。从line726我发现,对于不透明的PNG图像,如果图像不是RGBA格式图像,则Alpha通道没有默认值。

所以我想知道当PIL尝试时会发生什么,所以将RGB格式图像保存到没有默认Alpha值的PNG文件中?

或者在显示没有Alpha通道的PNG文件时系统是否会出现问题?


P.S。我正在使用PNG图像作为媒体来传输文件,因此RGB值应该完全正确才能解码。

如果您需要查看我的所有代码: https://github.com/lanyusea/py_imageFileConverter

谢谢!

0 个答案:

没有答案