2017-04-02 26 views
2

我有已經通過0度上PIL旋轉的圖像,確切的命令之中:圖片0度旋轉具有不同的base64相比於原始圖像

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

的基於64或者甚至SHA1哈希這兩個圖像是完全不同的。如果旋轉角度爲0,爲什麼會發生這種情況?

回答

3

因爲jpglossy,只是打開jpg文件並再次保存會導致信息丟失和不同的散列。

使用png,只要沒有其他信息(例如修改時間的標頭)被更新,您可能會得到完全相同的文件。旋轉0°後像素不會被修改,但即使圖像本身未被觸摸,壓縮算法也可能產生不同的二進制文件。

要調試此行爲,您可以使用bmp文件進行嘗試,並在不旋轉的情況下再次保存該文件,然後再次將其保存爲循環並檢查哈希值。

相關問題