【问题标题】:How to get ref url from PHPhotoLibrary in ioS?如何从 IOS 中的 PHPhotoLibrary 获取 ref url?
【发布时间】: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,以便我可以获取图像名称。

【问题讨论】:

标签: ios objective-c xcode phphotolibrary


【解决方案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 更新答案,您将获得照片中最后一张照片的名称
  • 尽管发帖人似乎不需要这个答案,但我确实需要。谢谢,伙计!
猜你喜欢
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 2022-01-13
  • 2016-09-21
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多