カメラロールに画像があります。画像とmd5チェックサムで合計するとデータ表現が得られます。画像をimg0.jpgとしてドキュメントディレクトリに書き込みます。元の画像を削除し、ALAssetLibraryのwriteImageDataToSavedPhotosAlbumを使用してデータ表現をカメラロールに書き戻します。
フォトアルバムを見ると、画像は同じように見えます。新しく保存した画像をカメラロールから再度読み取ります。
期待される結果-md5を計算します。実際の結果-異なるmd5。
このファイルとimg2.jpgを保存します
2つを16進ダンプして、違いを確認してください。
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を見ると、最後の文字が異なります。これは一部の画像(ほとんど)で発生していますが、すべてがテストされているわけではありません。この特定のケースでは、ヘッダーの文字の違いは1つだけですが、テストされた他の画像は、多くのデータが異なるため、さらに悪化しました。
iOSで実際の画像データを汚染されていないフォトライブラリに書き込む方法はありますか?私のアプリケーションが行っていることでは、画像をフォトライブラリに保存した後、md5チェックサムが同じであることに依存しています。