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中。就可以随时过来调用了。

时间: 2024-11-06 12:24:31

IOS获取摄像和本地中的资源的相关文章

iOS获取ipa素材、提取ipa资源图片文件

当我们看到一款优秀的App时,我们可能对它的一些素材比较感兴趣,或者我们也想仿写一款类似app,那么怎么能获取到它的素材资源文件呢? 下面我以ofo举例: 1.打开iTunes,搜索ofo关键字,选择商店下 找到后,下载下来,然后切换回到资料库,会看到已下载的列表 2.右击Finder显示,查看本地 3.修改后缀为zip,然后双击解压,会变成下面这样 然后,找到最里面的主体文件,显示包内容 4.然后我们会看到一些资源文件,其中包括一些appicon图标.启动图.Assets等. 但这里要注意一点

说一说Unty3d中的资源存放目录和获取方法

首先,讲一讲unity3d中的一些目录,不是Assets下的Resources等特殊文件夹,而是系统读写目录: IOS: Application.dataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data Application.streamingAssetsPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw Appl

iOS获取本地视频和网络URL视频的缩略图方法

iOS获取本地视频和网络URL视频的缩略图方法 字数222 阅读612 评论0 喜欢13 首先大家先添加AVFoundation和CoreMedia.framework两个框架 第一种本地视频获取缩略图 NSString *path = @"www.51ios.net/本地路径" MPMoviePlayerController *51iosMPMovie = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileU

修正iOS从照相机和相册中获取的图片 方向

修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrientationLeft,在使用的时候会出现图片顺时针偏转90°.使用fixOrientation方法修正这个问题. - (UIImage *)fixOrientation { // No-op if the orientation is already correct if (self.imageOri

iOS WebView 加载本地资源(图片,文件等)

NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; NSLog(@"%@", [self mimeType:url]); //webview加载本地文件,可以使用加载数据的方式 //第一个诶参数是一个NSData, 本地文件对应的数据 //第二个参数是MIMEType //第

iOS 获取本地视频的缩略图

iOS 获取本地视频的缩略图 (2012-10-10 20:06:27) 转载▼ 标签: 视频 缩略图 本地 杂谈 分类: ios +(UIImage *)getImage:(NSString *)videoURL { AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:videoURL] options:nil]; AVAssetImageGenerator *gen = [[AVAssetIma

iOS开发之获取一段字符串中的中文字和中文字符

#pragma mark -获取一段字符串中的中文字 + (NSArray *)getAStringOfChineseWord:(NSString *)string { if (string == nil || [string isEqual:@""]) { return nil; } NSMutableArray *arr = [[NSMutableArray alloc]init]; for (int i=0; i<[string length]; i++) { int a

iOS获取app图标和启动图片名字(AppIcon and LaunchImage&#39;s name)

在某种场景下,可能我们需要获取app的图标名称和启动图片的名称.比如说app在前台时,收到了远程通知但是通知栏是不会有通知提醒的,这时我想做个模拟通知提示,需要用到icon名称:再比如在加载某个控制器时,想设置该控制器的背景图片为启动图片,需要用到启动图片名称. 而事实上icon图片放在系统AppIcon文件夹里,启动图片放在系统LaunchImage文件夹里,取这些图片的名称和其他一般资源图片名称不一样. 为了方便举例子,咱们先简单粗暴点 假设当前项目只支持iPhone设备,并且只支持竖屏:而

IOS应用程序的5中状态

1. Not Running(非运行状态).应用没有运行或被系统终止. 2. Inactive(前台非活动状态).应用正在进入前台状态,但是还不能接受事件处理. 3.Active(前台活动状态).应用进入前台状态,能接受事件处理. 4.Background(后台状态).应用进入后台后,依然能够执行代码.如果有可执行的代码,就会执行代码,如果没有可执行的代码或者将可执行的代码执行完毕,应用会马上进入挂起状态. 5. Suspended(挂起状态).处于挂起的应用进入一种"冷冻"状态,不能