【问题标题】:Loading a photo taken from UIImagePickerController camera asynchronously异步加载从 UIImagePickerController 相机拍摄的照片
【发布时间】:2012-12-18 07:54:25
【问题描述】:
最初,我认为我可以使用UIImagePickerControllerReferenceURL 来获取ALAsset,然后使用它来生成aspectRatioThumbnail 并使用GCD 异步加载ALAsset。但是,从UIImagePickerController 拍摄照片似乎不会产生ALAsset,因为它不存储在照片库中,仅存储在内存中。
我仍然想以某种方式生成ALAsset,这样我就可以访问aspectRatioThumbnail 并以与UIImagePickterController 照片库相同的方式加载它。是否可以在不将照片保存到照片库的情况下执行此操作?
除了使用ALAsset之外,还有其他好的方法可以实现吗?
【问题讨论】:
标签:
iphone
ios
cocoa-touch
uiimagepickercontroller
alassetslibrary
【解决方案1】:
这里是如何做到这一点,制作缩略图并没有什么意义,因为这样做可能会花费太多的性能:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissModalViewControllerAnimated:YES];
self.photoImageView.image = nil;
[self.activityIndicatorView startAnimating];
dispatch_async(dispatch_get_global_queue(0, 0), ^
{
UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain];
dispatch_async(dispatch_get_main_queue(), ^
{
self.photoImageView.image = image;
[self.activityIndicatorView stopAnimating];
[image release];
});
});
}