我有一个应用程序将产品照片并将其保存回服务器。现在发送大文件和转换格式等是很昂贵的。所以我想知道如何检查先前上传的照片是否相同?如果它们具有相同的分辨率,它们具有相同的字节数是多少?还有什么是通过HTTP上传照片最有效的方式?应该是压缩等谢谢具有相同字节数的两张照片(大)的赔率是多少?
2
A
回答
5
而不是依赖于两个图像的字节大小,你可以创建这些图像MD5 hashes(或其他散列算法)并比较散列值。哈希碰撞比图像大小比较要少得多。
如果图像可以被显着压缩,那么您只应该打扰压缩。否则,你真的只是在客户端和服务器上浪费CPU。
0
'相同尺寸'对于相同的图片来说是必要的,但不是充分的要求。你必须真正看看字节的内容。 md5sum是验证平等的指纹选项。
正如Paul Sasi所提到的,压缩不会有太大帮助,因为大多数使用的文件格式(PNG,JPG等)已经过压缩和优化,尽可能少使用内存。
还有另一个选择来限制上传大小:在大多数情况下,客户端将图像上传格式的服务器分辨率过高(例如,他们直接从数码相机中获取文件,这意味着不能打印在线消费)。这通常会以大于2MB的图片结束。一个很大的优化就是在客户端调整图片的大小(比如4MB到200KB)。不幸的是我忘记了图书馆的名字(当我再次想到时,我会添加它)。
相关问题
- 1. 尺寸相同的多张照片
- 2. 如何判断UIImagePickerController照片的最大分辨率是多少?
- 3. 两个随机浮点数相同的概率是多少?
- 4. 具有相同IMSI的两张SIM卡
- 5. 在两张照片中匹配相同的单词
- 6. 两张表具有不同的用途,但具有相同的属性/字段
- 7. 计算连续有多少个数字具有相同的值
- 8. 放大缩小到多张照片
- 9. MFMailComposeViewController:附加照片(多张照片)
- 10. 从Google照片上传多张照片
- 11. 离子:相机在每张照片后要求确认/拍摄多张照片
- 12. 从用户照片库获取最后一张照片返回两张照片
- 13. 比较代表两张图片的两个字节数组
- 14. 找出一张照片是否是一大组照片的单色/棕褐色
- 15. Android:如何使用相同的相机意图拍摄多张照片
- 16. 具有相同数据的两个MYSQL表具有不同的大小
- 17. MySQL的:计算两个表中有多少行是相同的
- 18. 上传多张照片
- 19. 上传多张照片
- 20. MonoTouch - 选择多张照片
- 21. 多少不同的序列,每相邻的两个数字之差大于1
- 22. UTF-8编码字符的最大字节数是多少?
- 23. sql/php返回有多少时间字段具有相同的ID的计数
- 24. Swift:从Flickr获取照片总是获取相同的照片
- 25. 如何为具有多张照片的项目设计数据库模式
- 26. 使用相同的md5散列有两个字符串的机会是多少?
- 27. 使用Facebook的批量API张贴相同的照片到多个Facebook页面
- 28. 如何选择照片,计数照片,并为每张相册选择一张照片?
- 29. 两个字符串中有多少个字符相同
- 30. AES和AES的字节数是多少?
你是什么意思的“相同”?你可以有两张完全不同位图案的图片,当它们呈现给人类时(特别是如果它是一种压缩格式的话)时,它们看起来完全一样。 – 2011-06-13 04:41:19
@abelenky OP从未投过票。也许他/她不知道SO的工作原理 – 2011-06-13 13:02:18