iOS Swift:检查所选图像是否不同

时间:2016-02-23 23:49:38

标签: ios swift uiimage

我一直在挖掘,但无法找到这个例子的答案。

我正在创建一个包含用户数据的应用,例如姓名,个人资料图片等。

每次用户进行更改并保存更改时,我都会将更改更新/保存到Web服务器以进行更改。

这是我的问题进入的地方。

有没有办法检查用户是否更改了他的个人资料图片?

用户可以访问相机胶卷并且不会更改图片,只需返回之前的活动即可。没有进行更改,但他也可以单击更改配置文件图片并选择已设置的相同图片,所以我怎么知道图片是相同的,所以我可以避免新上传到服务器,同样图像?

在上传图像之前,我将其转换为NSData,并且我检查了生成的字节数组以及第一个和最后一个字节,大多数时候都是相同的,这是因为我试图连接成一个字符串到图像名称末尾的最后一个字节(作为字符串,例如:ProfilePic89504e47),但我根本不喜欢这种方法。

2 个答案:

答案 0 :(得分:1)

您可以使用isEqualToData:比较两个NSData对象。表示您已经上传的那个,以及刚刚从相机中选择的新的。

或者,您可以在两个NSData实例上计算MD5哈希(或类似),并进行比较。

答案 1 :(得分:-1)

一般情况下,如果这些是本地图像,您应该能够在更改其个人资料图片之前存储图像,然后您可以将该图像与最终通过 image1 == image2设置的图像进行比较

您必须比较基础数据,因此从Here开始,您可以执行以下操作:

if let firstImage = UIImage(named: "firstImage") {
    let firstImageData = UIImagePNGRepresentation(firstImage)
    let compareImageData = UIImagePNGRepresentation(secondImage)

    if let empty = emptyData, compareTo = compareImageData {
        if empty.isEqualToData(compareTo) {
            // First image is the same as Second
        } else {
            // Second image is not equal to first
        }
    } else {
        // Creating NSData from Images failed
    }
}