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中的资源 ...
随机推荐
- shell中截取字符串的方法总结
shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...
- Discuz模版与插件 安装时提示“对不起,您安装的不是正版应用...”解决方法
关于出现“对不起,您安装的不是正版应用..”的解决办法 有些插件和风格在安装时出现不能安装的现象,出现以下提示: 对不起,您安装的不是正版应用,安装程序无法继续执行 点击这里安 ...
- VPN+NAT实现代理服务器功能
前话 用VPN+NAT再结合路由可以实现很方便的代理功能,适用于有一台能方便连接Internet的电脑,其他不在同一子网内的电脑能够连接到这台机器但不能完全访问Internet.比如好些学校的校园网, ...
- (原创)CityEngine 2014和ArcGIS 10.3冲突问题的解决
先卸载ArcGIS License Manager 10.3 安装ArcGIS License Manager 10.2.2 用keygen算出ArcGIS 10.3的许可,似乎本许可在ArcGI ...
- 218. The Skyline Problem
题目: A city's skyline is the outer contour of the silhouette formed by all the buildings in that city ...
- Flex 选项卡加载方式简介
Flex中选项卡默认只加载选中的选项,所以在初始化的时候给其他的选项卡中的对象赋值或是其他操作,都会出现空对象错误. 解决办法:给选项卡设置属性 creationPolicy=”all” 如:< ...
- 【HDOJ】4393 Throw nails
水题,优先级队列. /* 4393 */ #include <iostream> #include <sstream> #include <string> #inc ...
- poj 1265 Area( pick 定理 )
题目:http://poj.org/problem?id=1265 题意:已知机器人行走步数及每一步的坐标 变化量 ,求机器人所走路径围成的多边形的面积.多边形边上和内部的点的数量. 思路:1.以 ...
- Unity3D如何获取对象和子对象
在Unity3d中获取游戏对象有三种方法: 一:获取对象 1.通过对象名称获取:objCube=GameObject.Find("Cube"); private var objCu ...
- [swustoj 1091] 土豪我们做朋友吧
土豪我们做朋友吧(1091) 问题描述: 人都有缺钱的时候,缺钱的时候要是有个朋友肯帮助你,那将是一件非常幸福的事情.有N个人(编号为1到N),一开始他们互相都不认识,后来发生了M件事情,事情分为2个 ...