旋转0度的图像与原始图像

时间:2017-04-02 17:05:11

标签: python python-2.7 pillow

我有一张我在PIL上旋转了0度的图像,确切的命令是:

image = Image.open("filename.jpg")
rotated = image.rotate(0,expand=True)
rotated.save("filename2.jpg")

这两个图像的base64甚至sha1哈希是完全不同的。如果旋转角度为0,为什么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

由于jpglossy,只需打开jpg文件并再次保存,就会导致信息丢失和散列不同。

使用png,只要没有更新其他信息(例如带有修改时间的标题),您就可以获得完全相同的文件。在0°旋转后,像素不会被修改,但即使图像本身未被触摸,压缩算法也可能产生不同的二进制文件。

要调试此行为,您可以使用bmp文件进行尝试,再次保存而不进行旋转,再次使用旋转保存并检查哈希值。