从自定义相册 PHPhotoLibrary 目标 C 中删除图像
Posted
技术标签:
【中文标题】从自定义相册 PHPhotoLibrary 目标 C 中删除图像【英文标题】:Delete Image from Custom Album PHPhotoLibrary objective C 【发布时间】:2017-05-23 10:33:57 【问题描述】:在我的应用程序中,我使用了编辑图片并保存在名为“Fab”的图库中的自定义文件夹中。现在有什么可以从文件夹中删除该图像吗?我找到了不同的解决方案,但它们需要资产 URL。我使用了 Photos 框架,那么如何获取特定图像的资产 url 以进行删除?
【问题讨论】:
您的问题解决了吗?需要帮助吗? 感谢您的帮助。 检查我的答案它解决了你的问题,因为我在我的项目中使用这个代码。 让我检查一下... ok 检查并告诉您是否遇到任何问题 【参考方案1】: PHAsset *tempPhasset = [_arrImageForAssetCameraRoll objectAtIndex:index]; // here pass your PHasset that you want to delete .
NSString *localStr=tempPhasset.localIdentifier;
NSRange range = [localStr rangeOfString:@"/"];
NSString *newString = [localStr substringToIndex:range.location];
NSString *appendedString=[NSString stringWithFormat:@"%@%@%@",@"assets-library://asset/asset.JPG?id=",newString,@"&ext=JPG"];
NSLog(@"%@ phasset ",appendedString);
NSURL *deleteurl = [NSURL URLWithString:appendedString];
NSArray *arrDelete = [[NSArray alloc] initWithObjects:deleteurl , nil];
PHFetchResult *asset = [PHAsset fetchAssetsWithALAssetURLs:arrDelete 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");
else
NSLog(@"delete Cancel");
];
对我的代码有任何疑问,然后发表评论。 快乐编码。
【讨论】:
如何删除多个图片数组资产? @RamaniHitesh 这里是您传递数组并从相机胶卷中删除所有资产的循环。 @RamaniHitesh 我在我的旧项目中使用相同的代码,它的工作完全文件。 但是先生,我这边不工作,请试试这个代码,然后让我知道可能与否【参考方案2】:试试下面的代码
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error)
if (error)
NSLog(@"error");
else
NSLog(@"url %@", assetURL);
];
将返回保存图像的 url。
【讨论】:
ALAssetsLibrary 已弃用。我使用了PHAsset。所以这不是答案以上是关于从自定义相册 PHPhotoLibrary 目标 C 中删除图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHPhotoLibrary 将视频/图像写入保存的相册?