我在相機膠捲中有圖像。如果圖像和md5檢查對它進行求和,我會得到數據表示。 我們將圖像寫入文檔目錄爲img0.jpg 刪除原始圖像並使用ALAssetLibrary的writeImageDataToSavedPhotosAlbum將數據表示重新寫入相機膠捲。使用writeImageDataToSavedPhotosAlbum保存圖像會修改實際圖像數據
看看相冊和圖像看起來是一樣的。 再次從相機捲筒中讀取新保存的圖像。
預期結果 - 計算md5。 實際結果 - 不同的md5。
保存此文件以及img2.jpg
進制打印兩個和看看的區別:
Dans-Mac:Desktop dan$ hexdump img1.jpg | head
0000000 ff d8 ff e1 26 31 45 78 69 66 00 00 4d 4d 00 2a
0000010 00 00 00 08 00 05 01 1a 00 05 00 00 00 01 00 00
0000020 00 4a 01 1b 00 05 00 00 00 01 00 00 00 52 01 28
0000030 00 03 00 00 00 01 00 02 00 00 02 13 00 03 00 00
0000040 00 01 00 01 00 00 87 69 00 04 00 00 00 01 00 00
0000050 00 5a 00 00 00 b4 00 00 00 48 00 00 00 01 00 00
0000060 00 48 00 00 00 01 00 07 90 00 00 07 00 00 00 04
0000070 30 32 32 31 91 01 00 07 00 00 00 04 00 00 00 00
0000080 a0 00 00 07 00 00 00 04 30 31 30 30 a0 01 00 03
0000090 00 00 00 01 00 01 00 00 a0 02 00 04 00 00 00 01
Dans-Mac:Desktop dan$ hexdump img2.jpg | head
0000000 ff d8 ff e1 26 31 45 78 69 66 00 00 4d 4d 00 2a
0000010 00 00 00 08 00 05 01 1a 00 05 00 00 00 01 00 00
0000020 00 4a 01 1b 00 05 00 00 00 01 00 00 00 52 01 28
0000030 00 03 00 00 00 01 00 02 00 00 02 13 00 03 00 00
0000040 00 01 00 01 00 00 87 69 00 04 00 00 00 01 00 00
0000050 00 5a 00 00 00 b4 00 00 00 48 00 00 00 01 00 00
0000060 00 48 00 00 00 01 00 07 90 00 00 07 00 00 00 04
0000070 30 32 32 31 91 01 00 07 00 00 00 04 00 00 00 01
0000080 a0 00 00 07 00 00 00 04 30 31 30 30 a0 01 00 03
0000090 00 00 00 01 00 01 00 00 a0 02 00 04 00 00 00 01
如果你看看行0000070的最後一個字符是不同的。 這是發生在一些圖像(大部分),但不是全部測試。 在這種特殊情況下,標題中只有一個字符差異,但測試的其他圖像更糟糕,大量數據不同。
iOS上有什麼辦法可以將實際的圖像數據寫入照片庫嗎? 隨着我的應用程序正在做的事情,我將md5校驗和保存到照片庫之後是相同的。
這幾乎是我採取的行動。將圖像寫回庫後,在完成處理程序中,我重新獲得對圖像的新引用,並且再次獲得md5。我是文件的第一個MB。使用md5的縮略圖根本不是一個壞主意,我將不得不測試下一次更新。 – dantastic