-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"url : %@",url);
}
我知道我们总是用ALAssetsLibrary通过UIImagePickerControllerReferenceURL得到的UIImage。但它已被弃用,那么我有其他方式吗?我怎样才能从“UIImagePickerControllerReferenceURL”的UIImage不ALAssetsLibrary
顺便说一句,下面的代码的输出:
assets-library://asset/asset.JPG?id=106E99A1-4F6A-45A2-B320-B0AD4A8E8473&ext=JPG
我查了苹果官方的文件,发现了ALAssetsLibrary取代PHPhotoLibrary。
我的上帝!最后我发现,这里是答案:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];
PHAsset *asset = result.firstObject;
PHImageManager *manager = [PHImageManager defaultManager];
[manager requestImageForAsset:asset targetSize:CGSizeMake(100, 100) contentMode:PHImageContentModeAspectFit options:nil resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
NSLog(@"%@",result);
}];
}
不相关,但不要使用字符串值'@“UIImagePickerControllerReferenceURL”'。使用提供的常量'UIImagePickerControllerReferenceURL'。 – rmaddy
它没有区别,你知道如何从这个URL获取UIImage? –
为什么不只是使用'UIImagePickerControllerOriginalImage'从'info'获取图像呢? – rmaddy