我有一個應用程序將產品照片並將其保存回服務器。現在發送大文件和轉換格式等是很昂貴的。所以我想知道如何檢查先前上傳的照片是否相同?如果它們具有相同的分辨率,它們具有相同的字節數是多少?還有什麼是通過HTTP上傳照片最有效的方式?應該是壓縮等謝謝具有相同字節數的兩張照片(大)的賠率是多少?
2
A
回答
5
而不是依賴於兩個圖像的字節大小,你可以創建這些圖像MD5 hashes(或其他散列算法)並比較散列值。哈希碰撞比圖像大小比較要少得多。
如果圖像可以被顯着壓縮,那麼您只應該打擾壓縮。否則,你真的只是在客戶端和服務器上浪費CPU。
0
'相同尺寸'對於相同的圖片來說是必要的,但不是充分的要求。你必須真正看看字節的內容。 md5sum是驗證平等的指紋選項。
正如Paul Sasi所提到的,壓縮不會有太大幫助,因爲大多數使用的文件格式(PNG,JPG等)已經過壓縮和優化,儘可能少使用內存。
還有另一個選擇來限制上傳大小:在大多數情況下,客戶端將圖像上傳格式的服務器分辨率過高(例如,他們直接從數碼相機中獲取文件,這意味着不能打印在線消費)。這通常會以大於2MB的圖片結束。一個很大的優化就是在客戶端調整圖片的大小(比如4MB到200KB)。不幸的是我忘記了圖書館的名字(當我再次想到時,我會添加它)。
相關問題
- 1. 尺寸相同的多張照片
- 2. 如何判斷UIImagePickerController照片的最大分辨率是多少?
- 3. 兩個隨機浮點數相同的概率是多少?
- 4. 具有相同IMSI的兩張SIM卡
- 5. 的Android相機拍攝多張照片
- 6. 防止在UIImagePickerController中選取兩張相同的照片
- 7. 在兩張照片中匹配相同的單詞
- 8. 兩張表具有不同的用途,但具有相同的屬性/字段
- 9. 計算連續有多少個數字具有相同的值
- 10. UiImagePickerController - 多張照片
- 11. 放大縮小到多張照片
- 12. MFMailComposeViewController:附加照片(多張照片)
- 13. 從Google照片上傳多張照片
- 14. 離子:相機在每張照片後要求確認/拍攝多張照片
- 15. 具有相同URL的多個節點
- 16. 從用戶照片庫獲取最後一張照片返回兩張照片
- 17. 組成兩張照片合成一張?
- 18. 相互參照兩張表
- 19. 比較代表兩張圖片的兩個字節數組
- 20. 找出一張照片是否是一大組照片的單色/棕褐色
- 21. Android:如何使用相同的相機意圖拍攝多張照片
- 22. 具有相同數據的兩個MYSQL表具有不同的大小
- 23. MySQL的:計算兩個表中有多少行是相同的
- 24. 多張照片表格或單張照片表格?
- 25. 上傳多張照片
- 26. MonoTouch - 選擇多張照片
- 27. 上傳多張照片
- 28. PHP MySQL計算有多少行具有相同的數據
- 29. 多少不同的序列,每相鄰的兩個數字之差大於1
- 30. 將多張照片導入到已保存的照片相冊中
你是什麼意思的「相同」?你可以有兩張完全不同位圖案的圖片,當它們呈現給人類時(特別是如果它是一種壓縮格式的話)時,它們看起來完全一樣。 – 2011-06-13 04:41:19
@abelenky OP從未投過票。也許他/她不知道SO的工作原理 – 2011-06-13 13:02:18