【问题标题】:Compare downloaded image to saved image?将下载的图像与保存的图像进行比较?
【发布时间】:2023-03-06 14:41:01
【问题描述】:

我想将我从服务器下载的图像与保存到捆绑包中的图像进行比较,以查看其是否相同。我将如何在 iOS 中实现这一点?

谢谢!

碎纸机

【问题讨论】:

    标签: ios cocoa-touch ipad uiimage comparison


    【解决方案1】:

    如果预期图像完全相同,没有重新压缩或其他任何内容,您可以将两者都加载到 NSData 对象中并将其与 isEqualToData: 进行比较。

    如果它们可能具有不同的元数据,但图像仍然相同,那么您可以将它们作为图像加载并使用类似于以下解码的方式比较实际图像像素:How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?

    如果它们相似,但格式可能不同或重新压缩,那么您需要图像比较软件,例如OpenCV.

    【讨论】:

      【解决方案2】:

      如果你想知道它是否是 same 图像,那么你应该使用散列函数。

      如果您已经决定应该使用什么哈希函数,那么您甚至可以让服务器向您发送图像的哈希值并将其与图像的本地哈希值进行比较,而不是向您发送图像本身。

      如果哈希匹配,则根本不需要下载图像。另一方面,如果哈希值不同,那么您知道您需要下载新图像。

      【讨论】:

      • 我认为更好的方法可能是计算本地图像哈希并将其作为图像请求的一部分发送到服务器。然后服务器将响应图像或 HTTP 代码 304(未修改)。然后客户端应该知道他可以使用存储的图像。
      【解决方案3】:

      首先你可以比较图像大小然后大小相同然后你可以在Image comparison使用答案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-07
        • 2014-02-14
        • 1970-01-01
        • 2019-04-16
        • 2016-10-02
        • 1970-01-01
        相关资源
        最近更新 更多