IOS探索之从拍照中获取图像对应的ALAsset
来源:互联网 发布:sql中decode 编辑:程序博客网 时间:2024/06/03 15:20
打开相机
//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;// if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {// sourceType = UIImagePickerControllerSourceTypePhotoLibrary;// } //sourceType = UIImagePickerControllerSourceTypeCamera; //照相机 //sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //图片库 //sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片 UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化 picker.delegate = self; picker.allowsEditing = YES;//设置可编辑 picker.sourceType = sourceType; [self presentModalViewController:picker animated:YES];//进入照相界面 [picker release];
看一下UIImagePickerControllerDelegate结构的声明
@protocol UIImagePickerControllerDelegate<NSObject>@optional// The picker does not dismiss itself; the client dismisses it in these callbacks.// The delegate will receive one or the other, but not both, depending whether the user// confirms or cancels.- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo NS_DEPRECATED_IOS(2_0, 3_0);- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;@end
其中
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;便是我们拍照完成之后的一个通知,其中的info携带了有关图片的一些信息,下面代码便是从这个info中抽取有用的信息得到我们需要的图像对应的ALAsset对象指针,
- (void)saveImageToPhotos:(UIImage*)savedImage{ if(nil == _library) _library = [[ALAssetsLibrary alloc] init]; __weak __typeof__(self) weakSelf = self; [_library writeImageToSavedPhotosAlbum:[savedImage CGImage] orientation:(ALAssetOrientation)[savedImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{ [weakSelf.library assetForURL:assetURL resultBlock:^(ALAsset *asset){//这里的asset便是我们所需要的图像对应的ALAsset了 dispatch_async(dispatch_get_main_queue(),^{ //以下代码纯属个人业务代码,可以不需要关心 NSMutableDictionary *mediaInfo = [[NSMutableDictionary alloc] init]; NSMutableArray* assets = [NSMutableArray array]; [assets addObject:asset]; [mediaInfo setObject:assets forKey:kMultiMediaData]; [mediaInfo setObject:[NSNumber numberWithInt:EFilterTypePhotos ] forKey:kMultiMediaFilter]; if (self.mediaReViewViewController) { [self.mediaReViewViewController addPhotoInfo:mediaInfo]; } [[YYViewControllerCenter currentVisiableRootViewController] dismissViewControllerAnimated:NO completion:^{}]; }); }failureBlock:^(NSError *error) {// [[YYViewControllerCenter currentVisiableRootViewController] dismissViewControllerAnimated:NO completion:^{}]; }]; }); }];}
上面assetForURL消息中的resultBlock函数块参数便是回调回来的ALAsset对象指针了。
0 0
- IOS探索之从拍照中获取图像对应的ALAsset
- IOS拍照---》保存到相册----》并且获取照片的ALasset传到相册
- iOS拍照后使用该图片(获取照片的ALasset传到相册)
- IOS获取ALAsset里面的视频的旋转角度
- iOS学习之——UIImagePickerController从拍照、图库、相册获取图片
- 通过ALAsset获取编辑过的图片
- 关于ALAsset的ALAssetPropertyAssetURL如何获取图片
- MySQL之从一个表中的两个Id分别获取另一个表中对应这两个Id的名字
- MySQL之从一个表中的两个Id分别获取另一个表中对应这两个Id的名字
- Android 拍照获取源图像
- 拍照(从本地获取存储在SD卡中)
- 最简单实现从相册和拍照中获取图片
- 系统相机拍照、从相册中获取图片
- swift4.0 从相册中获取图片和拍照
- IOS将ALAsset对象中数据保存到本地文件夹
- iOS 之从影片中获取每一帧图片
- IOS之从plist文件中获取数据
- JAVA之数字对应的电子图像
- JavaEE_SSM_Mybatis Mybatis 学习指南
- com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0
- 3-3-行编辑程序-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- C# - 程序的执行
- composer 的初步使用
- IOS探索之从拍照中获取图像对应的ALAsset
- 上推动画下拉刷新上拉加载
- android 去掉标题栏和全屏,横竖屏强制转换
- 实践自定义UI—RLF...(RelativeLayout LinearLayout FrameLayout....)
- Unity3d在安卓android的更新(APK覆盖)
- Android 版本更新
- Hadoop,MapReduce学习步骤
- 邮件开发:代理联网编程
- linux sort, uniq, cut, wc, xargs和管道'|'区别,expect自动化脚本