2016-05-05 1 views
2
-(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); 
    }]; 
} 
+0

Несвязанный, но не используйте строковое значение '@" UIImagePickerControllerReferenceURL ". Используйте предоставленную константу 'UIImagePickerControllerReferenceURL'. – rmaddy

+0

Не имеет значения, знаете ли вы, как получить UIImage из этого URL-адреса? –

+0

Почему не просто использовать 'UIImagePickerControllerOriginalImage', чтобы получить изображение из' info'? – rmaddy

ответ

1

Поскольку ALAssetsLibrary устарела в ios9. Использовать Photos Framework Reference.

+0

данные будут nil, я пробовал это –

+0

Я отредактировал свой ответ, пожалуйста, посмотрите – BHUMICA

+0

Да! это новая структура, но какая функция может получить UIImage UIImagePickerControllerReferenceURL –