1

我的應用程序允許用戶選擇imgs並將它們與某些文本相關聯。避免保存圖像副本

當用戶從照片卷選擇圖像時,我將它複製到Documents目錄中。

由於用戶應該選擇相同的img將其關聯到相同的文本或另一個,我怎樣才能避免保存同一圖像的重複?

我不能簡單地使用fileExistsAtPath,因爲這個名字是即時生成的。

有沒有辦法知道用戶是否選擇已保存在文檔目錄中的圖像?

回答

0

看看Generate hash from UIImage,它顯示了兩種方式來比較兩個圖像。第一個使用md5散列算法,另一個使用NSData的isEqualToData和UIImagePNGRepresentation函數。

但是,您也可以先比較文件大小和圖像大小,以避免使用更昂貴的方法。

+0

@尼克韋弗:每次用戶選擇一個圖像,我必須與文檔目錄中的所有圖像進行比較。我首先想到了比較文件大小和圖像尺寸,然後使用md5算法。當我使用sqlite3數據庫時,你是否知道從效率的角度來看,保存數據庫和圖像的md5結果是否更好? – Sefran 2011-05-14 15:10:35

+0

@Objnewbie當然可以。散列是一些元數據,只要圖像沒有改變就不會改變,所以像db這樣的其他信息保存在db中。 – 2011-05-14 16:04:37

+0

@尼克韋弗:非常感謝。我也在考慮像使用文件名一樣使用它的想法。 – Sefran 2011-05-14 16:16:50

0

您可以計算校驗和,並將其與文檔目錄中已有照片的校驗和進行比較。