【发布时间】:2013-07-12 20:41:36
【问题描述】:
我有使用 Amazon S3 上传到服务器的图像。我将它们转换为NSData,使用UIImageJPEGRepresentation 和0.75f 压缩质量。现在我想比较一下它们是否相等。
使用 PNG,这很容易,我所要做的就是:
if (UIImagePNGRepresentation(self.pictureImageView.image) isEqual:
UIImagePNGRepresentation(manageItemVC.pictureImage)]) {}
如here 所述。这会起作用,但现在图像是 JPEG,并且比较不起作用(很可能是由于压缩),即使我使用 UIImageJPEGRepresentation。
self.pictureImageView.image 是我从服务器加载到UIImageView 的图像,manageItemVC.pictureImage 是用户从照片库中挑选的图像。
有人知道如何比较 JPEG 图像吗?
【问题讨论】:
-
尝试将压缩质量设置为 1,看看是否确实是压缩造成了差异。
-
显然这不是问题,使用 1 仍然无法正常工作。
-
从技术上讲,图像的 PNG 表示不是唯一的;在 PNG 土地上,您为每条扫描线选择一个线性预测器,您通常通过猜测哪个会产生最简单(即最容易 gzip 压缩)输出来选择它。可以肯定的是,
UIImagePNGRepresentation将始终做出相同的选择,但这不是合同要求。 -
是否有某种库或算法用于 JPEG 图像比较并获得合理的结果?
标签: ios objective-c uiimageview uiimage