我如何在没有 ALAssetsLibrary 的情况下从 "UIImagePickerControllerReferenceURL" 获取 UIImage
How can i get UIImage from "UIImagePickerControllerReferenceURL" without ALAssetsLibrary
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"url : %@",url);
}
我知道我们总是使用 ALAssetsLibrary 通过 UIImagePickerControllerReferenceURL 获取 UIIMage。但它已被弃用,我还有其他方法吗?
顺便说一句,代码的输出如下:
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);
}];
}
由于 ALAssetsLibrary 在 ios9 中已弃用。使用 Photos Framework Reference.
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"url : %@",url);
}
我知道我们总是使用 ALAssetsLibrary 通过 UIImagePickerControllerReferenceURL 获取 UIIMage。但它已被弃用,我还有其他方法吗?
顺便说一句,代码的输出如下:
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);
}];
}
由于 ALAssetsLibrary 在 ios9 中已弃用。使用 Photos Framework Reference.