IOS获取摄像和本地中的资源
上传文件时,我们都的从本地中选择或用相机来拍摄得到文件。
一个上传按钮,单击事件

1 -(IBAction)btnClick{
2 UIActionSheet* actionSheet = [[UIActionSheet alloc]
3 initWithTitle:@"请选择文件来源"
4 delegate:self
5 cancelButtonTitle:@"取消"
6 destructiveButtonTitle:nil
7 otherButtonTitles:@"照相机",@"摄像机",@"本地相簿",@"本地视频",nil];
8 [actionSheet showInView:self.view];
9 [actionSheet release];
10 }

点击按钮触发的btnClick事件后将会弹出一个如下的选择筐:
接下来将要为UIActionSheet实现其中的委托了。

1 #pragma mark -
2 #pragma UIActionSheet Delegate
3 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
4 {
5 NSLog(@"buttonIndex = [%d]",buttonIndex);
6 switch (buttonIndex) {
7 case 0://照相机
8 {10 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
11 imagePicker.delegate = self;
12 imagePicker.allowsEditing = YES;
13 imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
14 imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
15 [self presentModalViewController:imagePicker animated:YES];
16 [imagePicker release];
17 }
18 break;
19 case 1://摄像机
20 {22 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
23 imagePicker.delegate = self;
24 imagePicker.allowsEditing = YES;
25 imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
26 imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
27 imagePicker.videoQuality = UIImagePickerControllerQualityTypeLow;
28 [self presentModalViewController:imagePicker animated:YES];
29 [imagePicker release];
30 }
31 break;
32 case 2://本地相簿
33 {35 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
36 imagePicker.delegate = self;
37 imagePicker.allowsEditing = YES;
38 imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
39 imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
40 [self presentModalViewController:imagePicker animated:YES];
41 [imagePicker release];
42 }
43 break;
44 case 3://本地视频
45 {47 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
48 imagePicker.delegate = self;
49 imagePicker.allowsEditing = YES;
50 imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
51 imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
52 [self presentModalViewController:imagePicker animated:YES];
53 [imagePicker release];
54 }
55 break;
56 default:
57 break;
58 }
59 }

实现了UIActionSheet的委托后,要发现,我们使用了UIImagePickerController,这个类将帮我们实现选取文件,打开对应的选取方式。比如当ButtonIndex为0的时候,它将帮我们打开照相机,我们可以使用相机拍摄照片作为上传的选取文件。因此,在这里我们还要实现UIImagePickerController的委托:

1 #pragma mark -
2 #pragma UIImagePickerController Delegate
3 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
4 {
5 if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeImage]) {
6 UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage];
7 self.fileData = UIImageJPEGRepresentation(img, 1.0);
8 } else if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeMovie]) {
9 NSString *videoPath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
10 self.fileData = [NSData dataWithContentsOfFile:videoPath];
11 }
12 [picker dismissModalViewControllerAnimated:YES];
13 }
14
15 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
16 {
17 [picker dismissModalViewControllerAnimated:YES];
18 }

之后,你选取的文件便保存在了filedata中。就可以随时过来调用了。
IOS获取摄像和本地中的资源的更多相关文章
- iOS获取ipa素材、提取ipa资源图片文件
当我们看到一款优秀的App时,我们可能对它的一些素材比较感兴趣,或者我们也想仿写一款类似app,那么怎么能获取到它的素材资源文件呢? 下面我以ofo举例: 1.打开iTunes,搜索ofo关键字,选择 ...
- iOS获取网络数据/路径中的文件名
NSString * urlString = @"http://www.baidu.com/img/baidu_logo_fqj_10.gif"; //方法一:最直接 NSStri ...
- iOS学习——如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒
如题,本文主要研究如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒.做过安卓开发的小伙伴肯定很方便就能像打开资源管理器一样查看我们写到手机本地或应用中的各种资源,但是在iOS开发 ...
- iOS WebView 加载本地资源(图片,文件等)
https://www.cnblogs.com/dhui69/p/5596917.html iOS WebView 加载本地资源(图片,文件等) NSString *path = [[NSBundle ...
- Pyqt 获取打包二进制文件中的资源
记得有一次打开一个单独exe程序,点击btn中的一个帮助说明按钮,在同级目录下就多出一个help.chm 文件并自动打开. 那这个exe肯定是把help.chm 打包到exe中,当我触发“帮助”按钮的 ...
- IOS获取物理尺寸中7Plus中获取的是7的物理尺寸
IOS获取物理尺寸中7Plus中获取的是7的物理尺寸: 在开发调试过程中我的7Plus手机获取[uiscreen mainscreen].bounds为750 .1334. 解决方案:在手机中的显示 ...
- 修正iOS从照相机和相册中获取的图片 方向
修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrie ...
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
写作业的时候要输出一个record.dat文件到jar包的同级目录,但是不知道怎么定位jar包的路径.百度到的方法不很靠谱,所以在这里记录一下. 一:使用类路径 String path = this. ...
- springmvc获取jar中的静态资源与jar包中的资源互相引用问题
1.首先看jar中的文件位置 2.在web工程中引用该jar 并且在springmvc文件中配置路径 如果有多个路径可用逗号隔开 3.在web工程找jsp页面如何引用 这样就可以了 关于jar中的资源 ...
随机推荐
- 如何用Java语言向串口读写数据
原作者:赛迪网作者 shihuchen ,我在他的基础上进行了部分修改 [赛迪网讯]串口, RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA ...
- Altium Designer13 如何导出Gerber文件
参考<http://blog.sina.com.cn/s/blog_9b9a51990100zyyv.html> 版本:AD13.3.4 目的:Gerber文件导出备忘 目录: Step1 ...
- Android:再按一次退出程序
感觉这种效果比较友好 //两秒内按返回键两次退出程序 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode ...
- std::advance 给迭代器增加指定偏移量
template <class InputIterator, class Distance> void advance (InputIterator& it, Distance n ...
- POJ1265——Area(Pick定理+多边形面积)
Area DescriptionBeing well known for its highly innovative products, Merck would definitely be a goo ...
- Android 使用split函数进行多个空格分割
在项目中经常会遇到按字符分割字符串的情况,可以使用String对象的split函数进行分割. 先看实际情况: String str = "关键词1 关键词2 关键词3"; Stri ...
- win8 hyper-v 禁用不必卸载虚拟机
转载:http://tylzwp.blogbus.com/logs/232938121.html 禁用hyperv的目的是使用之前在用的VMware的虚拟机,不必重新处理一遍. 具体操作: 1确报之前 ...
- [译]15个关于Chrome的开发必备小技巧
谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...
- 如何理解IoC/DI
IoC:Inversion of Control,控制反转DI:Dependency Injection,依赖注入 要理解上面两个概念,就必须搞清楚如下的问题: 参与者都有谁?依赖:谁依赖于谁?为什么 ...
- Linux Shell常用命令手册(Updating)
检查远程端口是否对bash开放: nc -nvv $IP $PORT telnet $IP $PORT 当前任务的前后台切换: Ctrl + z fg 截取变量前5个字符: ${variable:0: ...