如何从 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 将照片保存在带有元数据的相册中?