iOS - 调用相机连续拍照
来源:互联网 发布:数据集成平台的作用 编辑:程序博客网 时间:2024/05/02 04:56
跟朋友讨论如题中的功能怎么实现,后来用系统的方法实现了这一功能,说起来有点取巧,就是在确定拍照后的图片后重新进入相机界面,前面我发过一篇Object-C的和Swift的上传头像,以这个为基础实现,具体做法是在,选中一张图片后的代理中:
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
在以下方法中:
//表单请求,上传文件 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer];//请求 manager.responseSerializer = [AFHTTPResponseSerializer serializer];//响应 manager.requestSerializer.timeoutInterval = 8; /* *这里需要特别注意一下,因为没有放具体的上传地址,所以这个上传方式是不成功的,但是方法是没错的,需要替换成正确的上传地址 */ [manager POST:[NSString stringWithFormat:@"url"] parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //将图片以表单形式上传 NSData *data1=[NSData dataWithContentsOfFile:filePath]; [formData appendPartWithFileData:data1 name:@"headPicFile" fileName:@"headPicFile" mimeType:@"image/png"]; //关闭相册界面 [UIView animateWithDuration:0.001 animations:^{ [picker dismissViewControllerAnimated:NO completion:nil]; } completion:^(BOOL finished){ //重新打开相机 [self presentViewController:picker animated:YES completion:nil]; }]; }progress:^(NSProgress *uploadProgress){ }success:^(NSURLSessionDataTask *task, id responseObject) { NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; NSLog(@"dic:%@",dic); //成功后替换新头像 NSData *data1=[NSData dataWithContentsOfFile:filePath]; headImageView.image = [UIImage imageWithData:data1]; } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"%@",[error description]); NSLog(@"%@",error); //因为没有有效地址,所以肯定是上传失败的,为了表现出效果,此处也替换为新头像 NSData *data1=[NSData dataWithContentsOfFile:filePath]; headImageView.image = [UIImage imageWithData:data1]; }];
主要是这个方法:
//关闭相册界面 [UIView animateWithDuration:0.001 animations:^{ [picker dismissViewControllerAnimated:NO completion:nil]; } completion:^(BOOL finished){ //重新打开相机 [self presentViewController:picker animated:YES completion:nil]; }];
用UIView的过渡方法,这个过渡方法在Core Animation中也有介绍过,尤其注意要把present和dismiss的跳转里面的动画设置为NO,否则你设置的时间是无效的,重新打开相机可酌情给YES,具体效果,可以自己动手尝试。
另外picker.allowsEditing根据需要设置,意思是拍照后显示刚拍的图片,可进行编辑,为NO时不显示。
最后再说一句,要想得到多张图片且统一上传,就不要把关闭相机和重新打开的代码放在AF中,因为是直接上传的,要拿到图片请设置全局变量根据是否选择图片来获取当前拍摄的图片并存储。最后统一上传。
0 0
- iOS - 调用相机连续拍照
- 调用相机获取拍照
- 调用相机拍照功能
- ios--笔记--调用相机拍照及获取图片
- iOS 调用相机拍照和选择图库图片 设置头像
- iOS 不调用相机实现拍照和录制视频
- iOS 学习日志:调用相机拍照获得图片旋转问题
- Swift iOS 8调用系统相机的拍照
- iphone开发 调用相机拍照
- android 调用相机拍照 伪闪退
- 调用相机和手机拍照
- android 调用系统相机拍照
- android调用系统相机拍照
- android调用系统相机拍照
- 调用系统相机进行拍照
- 前端调用手机相机拍照
- Android调用系统相机拍照
- 调用相机,自定义拍照 Runnable
- js正则表达式
- 类和对象
- uboot启动阶段修改启动参数方法及分析
- Torch 中添加自己的 nn Modules:以添加 Dropout、 Triplet Loss 为例
- java序列化与反序列化系列问题
- iOS - 调用相机连续拍照
- 扩展欧几里得算法
- Android杂谈————Menu的用法
- 基于MAVEN的WEB项目在ECLIPSE中使用TOMCAT调试
- POJ-1678 I Love this Game!(博弈论)
- Linux时间系统调用总结
- 文章标题
- Log4j的简单配置及使用方法
- android ColorMatrix常用图像颜色矩阵处理效果