iOS检查库中是否存在图像

时间:2015-04-10 10:24:19

标签: ios objective-c uiimage alassetslibrary

我目前正在开发一个项目,要求将拍摄的照片保存在照片库中。我使用以下代码实现了这一点:

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中的一个填充,然后单击Done Button保存。

如果用户查看并添加了一个图像,则有4个已保存的图像。一个是新的。我现在只想将新的一个保存到库中。

1 个答案:

答案 0 :(得分:1)

我认为,这是不可能的。

您可以尝试的一件事是,使用SHA-1,它呈现为十六进制数字,文件长度为40位。或者,您可以使用MD5。

创建imgResult的SHA-1表示,然后枚举所有照片库图像并为每个图像创建SHA-1表示进行比较。

我没有充分的希望,因为与Photo-library图像一起保存的位置,时间和其他元数据将更改二进制文件内容,并将SHA-1结果更改为同一图像。< / p>

相关问题