如何从 IOS 中的 PHPhotoLibrary 获取 ref url?

Posted

技术标签:

【中文标题】如何从 IOS 中的 PHPhotoLibrary 获取 ref url?【英文标题】:How to get ref url from PHPhotoLibrary in ioS? 【发布时间】:2017-03-01 07:25:13 【问题描述】:

我正在用相机拍摄图像。捕获后我想获取 url,以便我可以获取图像名称。我正在使用下面的代码。

 PHObjectPlaceholder *assetholder;
        phphotoLibrary *objPhoto = [PHPhotoLibrary sharedPhotoLibrary];
        [objPhoto performChanges:^

        PHAssetChangeRequest *assets = [PHAssetChangeRequest creationRequestForAssetFromImage:info[UIImagePickerControllerOriginalImage]];
        PHObjectPlaceholder *assetholder = assets.placeholderForCreatedAsset;

         completionHandler:^(BOOL success, NSError * _Nullable error) 


        ];

建议我如何获取图像的 url,以便我可以获取图像名称。

【问题讨论】:

类似的人 - 大赏 - ***.com/questions/43791151/… 【参考方案1】:
PHAsset *asset = nil;
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
if (fetchResult != nil && fetchResult.count > 0) 
    // get last photo from Photos
    asset = [fetchResult lastObject];


if (asset) 
    // get photo info from this asset
    PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
    imageRequestOptions.synchronous = YES;
    [[PHImageManager defaultManager]
             requestImageDataForAsset:asset
                            options:imageRequestOptions
                      resultHandler:^(NSData *imageData, NSString *dataUTI,
                                      UIImageOrientation orientation, 
                                      NSDictionary *info) 
     
          NSLog(@"info = %@", info);
          if ([info objectForKey:@"PHImageFileURLKey"]) 
               // path looks like this - 
               // file:///var/mobile/Media/DCIM/###APPLE/IMG_####.JPG
               NSURL *path = [info objectForKey:@"PHImageFileURLKey"];
                                                 
    ];

【讨论】:

Bro assets libraray 在 ios 9 中已被弃用。另外,如果您研究我的问题,我没有 nsurl,因为我是从相机而不是图库拍摄图像 @iOSGuy 更新答案,您将获得照片中最后一张照片的名称 尽管发帖人似乎不需要这个答案,但我确实需要。谢谢,伙计!

以上是关于如何从 IOS 中的 PHPhotoLibrary 获取 ref url?的主要内容,如果未能解决你的问题,请参考以下文章

“PHPhotoLibrary.requestAuthorization”不在 iOS 9 中询问权限

如何在 iOS9 中使用 PHPhotolibrary 将照片保存在带有元数据的相册中?

如何从 PHPhotoLibrary 获取图像的位置?

如何从 SwiftUI 调用 PHPhotoLibrary presentLimitedLibraryPicker?

iOS:使用设置切换 PHPhotoLibrary 权限

如何使用 PHPhotoLibrary 获取照片的日期