2012-08-01 77 views

回答

2

如果圖像預計完全相同,沒有重新壓縮或任何其他內容,則可以同時加載NSData對象並將其與isEqualToData:進行比較。

如果它們可能具有不同的元數據,但圖像仍然相同,則可以將它們加載爲圖像並使用與此類似的解碼比較實際圖像像素:How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?

如果它們是相似的,但也可以是不同的格式或再壓縮,那麼你需要的圖像比較軟件,例如OpenCV

+0

比較圖像數據工作得很好!謝謝! – Shredder2794 2012-08-02 00:51:57

2

使用的答案如果你想知道,如果它是相同圖像,那麼你應該只使用一個哈希函數。

如果您有什麼散列函數應該使用,那麼你甚至可以讓服務器決定送你的圖像的哈希值,並將其與圖像的本地哈希值,而不是向您發送圖像本身比較。

如果散列匹配,那麼就沒有必要下載圖像的。另一方面,如果哈希值不同,則您知道需要下載新映像。

+1

我認爲,更好的方法可能是計算本地圖像的哈希值,並將其發送到服務器的圖像請求的一部分。然後,服務器將響應圖像或HTTP代碼304(未修改)。客戶應該知道他可以使用存儲的圖像。 – Ariel 2012-08-01 10:34:29