如何在 PHAsset 中添加图像并将其从照片库中删除?

Posted

技术标签:

【中文标题】如何在 PHAsset 中添加图像并将其从照片库中删除?【英文标题】:How to add image in PHAsset and delete it from photo library? 【发布时间】:2015-07-16 09:21:49 【问题描述】:

我正在开发一个像隐藏照片这样的应用程序,我想将图像移动到我的应用程序中,因此我必须从照片库中导入图像并从库中删除该图像,但我不明白如何使用 PHAssets以及在哪里实施。

我使用 UIPickerview 选择图像,然后从库中删除它,请任何人都可以帮助我

这是我获取图片的选择器:

UIImage *chosenImage = info[UIImagePickerControllerEditedImage];

这是删除但什么是资产:

[[phphotoLibrary sharedPhotoLibrary] performChanges:^
    [PHAssetChangeRequest deleteAssets:formatWithOrientation];
 completionHandler:^(BOOL success, NSError *error) 
    NSLog(@"Finished deleting asset. %@", (success ? @"Success." : error));
];

【问题讨论】:

【参考方案1】:

试试这个代码。它对我有用。

PHFetchResult *asset = [PHAsset fetchAssetsWithALAssetURLs:@“Your asset url” options:nil];

 [asset enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) 
 NSLog(@"%@",[obj class]);
 [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
     BOOL req = [obj canPerformEditOperation:PHAssetEditOperationDelete];
     if (req) 
         NSLog(@"true");
         [PHAssetChangeRequest deleteAssets:@[obj]];
     
  completionHandler:^(BOOL success, NSError *error) 
     NSLog(@"Finished Delete asset. %@", (success ? @"Success." : error));
     if (success) 
        NSLog(@“delete successfully”);  
    
];
];

【讨论】:

但是如何获取图片的url 为此,您必须使用 ALAssetsLibrary 而不是 UIImagePicker 导入图像 查看***.com/questions/9705478/… 这项工作并且不能使用 AlAssets 您可以使用 NSURL *imageurl = info[UIImagePickerControllerReferenceURL] 直接从 uiimagepicker 获取 url;然后将其添加到 nsmutablearray 并解决问题 andthanx keyur 你救了我很多thanx

以上是关于如何在 PHAsset 中添加图像并将其从照片库中删除?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MacOS 的照片库中获取所有 PHAsset

在核心数据中保存 PHAsset?

如何复制 PHAsset?

带有 PHAsset 的 SDWebImage

获取保存到照片库的图像的 PHAsset/localIdentifier

在 iOS8 上使用 UIImagePicker 结果 URL 和 PHAsset 从“我的照片流”加载图像