Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 避免保存重复的图像_Iphone_Uiimagepickercontroller_Photo Gallery_Nsdocumentdirectory - Fatal编程技术网

Iphone 避免保存重复的图像

Iphone 避免保存重复的图像,iphone,uiimagepickercontroller,photo-gallery,nsdocumentdirectory,Iphone,Uiimagepickercontroller,Photo Gallery,Nsdocumentdirectory,我的应用程序允许用户选择IMG并将其与某些文本关联 当用户从照片卷中选择图像时,我将其复制到Documents目录中 由于用户应选择相同的img将其关联到相同的文本或另一个文本,我如何避免保存相同图像的副本 我不能简单地使用fileExistsAtPath,因为名称是动态生成的 有没有办法知道用户是否正在选择已保存在documents目录中的图像?您可以计算校验和,并将其与documents目录中已存在的照片校验和进行比较。看看,它显示了两种相互比较两幅图像的方法。第一个使用md5散列算法,另一

我的应用程序允许用户选择IMG并将其与某些文本关联

当用户从照片卷中选择图像时,我将其复制到Documents目录中

由于用户应选择相同的img将其关联到相同的文本或另一个文本,我如何避免保存相同图像的副本

我不能简单地使用fileExistsAtPath,因为名称是动态生成的


有没有办法知道用户是否正在选择已保存在documents目录中的图像?

您可以计算校验和,并将其与documents目录中已存在的照片校验和进行比较。

看看,它显示了两种相互比较两幅图像的方法。第一个使用md5散列算法,另一个使用NSData的isEqualToData和UIImagePNGRepresentation函数


不过,您也可以先比较文件大小和图像尺寸,以避免使用更昂贵的方法。

@Nick Weaver:每次用户选择图像时,我都必须与documents目录中的所有图像进行比较。我想首先比较文件大小和图像尺寸,然后使用md5算法。当我使用sqlite3数据库时,您是否知道从效率的角度来看,是否最好将图像的md5结果也保存在数据库中?@Objnewbie是的。哈希是一种元数据,只要图像不改变,它就不会改变,所以请像大小等其他信息一样保存在数据库中。@Nick Weaver:非常感谢。我也在考虑像使用文件名一样使用它。@Nick Weaver:我使用了您提供的链接后找到的解决方案,但是在同一个图像上md5总是不同的。你有办法解决这个问题吗?@Objnewbie这确实很奇怪。存储一些非常小的参考图片并转储字节以查看是否发生了变化可能会很有趣。