【问题标题】:Comparing two JPEG images in iOS在 iOS 中比较两个 JPEG 图像
【发布时间】:2013-07-12 20:41:36
【问题描述】:

我有使用 Amazon S3 上传到服务器的图像。我将它们转换为NSData,使用UIImageJPEGRepresentation0.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


【解决方案1】:

您可以检查两个图像的数据长度并进行比较。 根据我的建议,我检查两个数据是否相差 10000 => 两个图像不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-25
    • 2019-07-07
    • 2015-05-27
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多