-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"url : %@",url);
}
Я знаю, мы всегда используем ALAssetsLibrary, чтобы получить UIImage от UIImagePickerControllerReferenceURL. Но это устарело, так что у меня есть другой путь?Как я могу получить UIImage от «UIImagePickerControllerReferenceURL» без 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
Не имеет значения, знаете ли вы, как получить UIImage из этого URL-адреса? –
Почему не просто использовать 'UIImagePickerControllerOriginalImage', чтобы получить изображение из' info'? – rmaddy