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中的资源 ...
随机推荐
- struts2总结五: Strut2 访问Servlet API
一.间接访问 public String execute() throws Exception { this.message="hello,this is put into applicat ...
- Android 自定义对话框使用静态Handler传递参数
JsdMainDialog.java package com.jsd.demo; import android.app.Activity; import android.content.Context ...
- NFC(11)MifareUltralight格式规范及读写示例
注意 MifareUltralight 不支三种过滤方式之一,只支持第四种(用代码,activity singleTop ) 见 NFC(4)响应NFC设备时启动activity的四重过滤机制 Mi ...
- NFC(10)NDEF uri格式规范及读写示例(解析与封装ndef uri)
只有遵守NDEF uri 格式规范的数据才能写到nfc标签上. NDEF uri 格式规范 uri 只有两部分: 第1个字节是uri协议映射值,如:0x01 表示uri以 http://www.开头. ...
- 关于xml的一些知识,DTD,XSD
DTD 文档类型定义(Document Type Definition)是一套关于标记符的语法规则.它是标准通用标记语言和 可扩展标记语言1.0版规格的一部分,是文档的验证机制.文档类型定义是一种保证 ...
- Zookeeper安装和配置
Zookeeper的安装和配置,可以配置成单机模式.伪集群模式.集群模式. 参考http://coolxing.iteye.com/blog/1871009 一. 单机模式 (1)zookeeper下 ...
- poj1286Necklace of Beads(ploya定理)
链接 这个东东是新知识 let's 从头学起吧 这篇文库讲的不错 至少把各种概念学了一遍 然后再看此题 共有两种类型的置换 一种是旋转之后相同算一种 一种是翻转之后相同算一种 对于旋转 共有N次置换 ...
- MySQL timed_mutexes
提要: MySQL 5.5.39 Release版本正式从源码里删除了全局参数timed_mutexes.timed_mutexes原本用来控制是否对Innodb引擎的mutex wait进行 计时统 ...
- I.MX6 wm8962 0-001a: DC servo timed out
/******************************************************************************* * I.MX6 wm8962 0-00 ...
- 【转】Android项目中编译 C的模块
原文网址:http://blog.csdn.net/Harrison_zhu/article/details/4057738 Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才 ...