-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"url : %@",url);
}
Ich weiß, wir ALAssetsLibrary immer verwenden UIImage von UIImagePickerControllerReferenceURL zu bekommen. Aber es ist veraltet, also habe ich einen anderen Weg?Wie kann ich UIImage von „UIImagePickerControllerReferenceURL“ ohne ALAssetsLibrary
By the way, die Ausgabe des folgenden Code:
assets-library://asset/asset.JPG?id=106E99A1-4F6A-45A2-B320-B0AD4A8E8473&ext=JPG
I Apfel amtliches Dokument geprüft, fand heraus, dass ALAssetsLibrary durch PHPhotoLibrary ersetzt.
Mein Gott! Schließlich finde ich heraus, hier ist die Antwort:
-(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);
}];
}
Unrelated, aber verwenden Sie nicht den Zeichenfolgenwert '@" UIImagePickerControllerReferenceURL "'. Verwenden Sie die angegebene Konstante von 'UIImagePickerControllerReferenceURL'. – rmaddy
es macht keinen Unterschied, wissen Sie, wie UIImage von dieser URL zu bekommen? –
Warum verwenden Sie nicht einfach das 'UIImagePickerControllerOriginalImage', um das Bild von' info' zu erhalten? – rmaddy