iOS 检查库中是不是存在图像
Posted
技术标签:
【中文标题】iOS 检查库中是不是存在图像【英文标题】:iOS Check if an image is present in the libraryiOS 检查库中是否存在图像 【发布时间】:2015-04-10 10:24:18 【问题描述】:我目前正在处理一个项目,该项目要求将拍摄的照片保存在照片库中。我使用以下代码完成此操作:
self.library = [[ALAssetsLibrary alloc] init];
[self.library saveImage:imgResult toAlbum:bundleIDForAlbum withCompletionBlock:^(NSError *error)
if (error!=nil)
NSLog(@"Big error: %@", [error description]);
];
但是,如果图像中已经存在,我不想将其保存到库中。
喜欢-
if( ! [self checkIfImageExists])
self.library = [[ALAssetsLibrary alloc] init];
[self.library saveImage:imgResult toAlbum:bundleIDForAlbum withCompletionBlock:^(NSError *error)
if (error!=nil)
NSLog(@"Big error: %@", [error description]);
];
编写方法定义 -
-(BOOL) checkIfImageExists
//What do I do here???
请参阅:我正在寻找一种智能解决方案,而不是通过将记录写入具有名称的本地文件来自己维护记录,并保留另一条记录以检查哪个文件名已保存到库中.
编辑
图像由 UIImagePickerController 中的一个填充,然后在单击完成按钮时保存。
如果用户查看并添加了一张图片,则有 4 张已保存的图片。还有一个是新的。我现在只想将新的保存到库中。
【问题讨论】:
这些图片来自哪里,怎么可能是复制品?谁说你提出的解决方案不智能? 检查编辑,我只是想知道是否有任何方法可以检查图像是否已经存在于库中。我同意我的解决方案并不愚蠢,但我很肯定应该有更好的方法来做到这一点 【参考方案1】:我认为,这是不可能的。
您可以尝试的一件事是使用 SHA-1,它呈现为十六进制数字,文件长度为 40 位。或者,您可以使用 MD5。
创建imgResult
的 SHA-1 表示,然后枚举所有照片库图像并为每个图像创建 SHA-1 表示以进行比较。
我不抱太大希望,因为与照片库图像一起保存的位置、时间和其他元数据会改变二进制文件的内容,并且 SHA-1 会产生相同的图像。
【讨论】:
以上是关于iOS 检查库中是不是存在图像的主要内容,如果未能解决你的问题,请参考以下文章
JGit:我可以在不检查的情况下找出某个特定标签是不是存在于 Git 存储库中吗?