-(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