简体   繁体   English

从自定义相册PHPhotoLibrary目标C中删除图像

[英]Delete Image from Custom Album PHPhotoLibrary objective C

In my app I used edit pic and saved in custom folder in Gallery called "Fab". 在我的应用程序中,我使用了编辑图片并将其保存在“ Fab”画廊的自定义文件夹中。 now is there anything to delete that image from folder? 现在有什么可以从文件夹中删除该图像的吗? I have found different solution but they require asset URL. 我找到了不同的解决方案,但它们需要资产URL。 I used Photos framework so how to get asset url for particular image for deletion ? 我使用了Photos框架,因此如何获取要删除的特定图像的资产url?

 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");

                }
 }];

Any query about my code then put comment . 有关我的代码的任何查询,然后置评。 Happy Coding. 编码愉快。

Try this below code 试试下面的代码

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);  
    }  
}];  

will return url for saved image. 将返回保存图像的URL。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM