python Image.save更改数据

时间:2014-02-22 02:55:36

标签: python pillow

似乎python有自己的想法..

以下是它在IDLE中的表现:

>>> a = Image.open("1.jpg")
>>> a.save("2.jpg")
>>> b = Image.open("1.jpg")
>>> c = Image.open("2.jpg")
>>> c == b
False
>>> c.getdata() == b.getdata()
False
>>> c.getdata()[0]
(243, 217, 130)
>>> b.getdata()[0]
(245, 215, 129)
>>> 

?!

我尝试过不同的图片,所有人都回来了......

感谢您的帮助:)。

1 个答案:

答案 0 :(得分:3)

这与Python无关,而与JPEG有关。 JPEG是lossy format,在保存文件时通常不会产生完全相同的数据。根据质量设置,它可能甚至不是非常接近。此行为是设计使然。为避免这种情况,请勿使用有损格式。特别是,不要重复加载JPEG,修改它,并再次将其保存为JPEG。这会产生生成损失,每次保存时图像都会变差。