IOS:Camera的特性分析与使用

Camera是IOS中很重要的一个信息获取途径。

以下我们主要从硬件特性以及软件特性两个方面来看看Canera的使用,先来看看软件上我们使用Camera都能干点什么。

先来看看以下一张图:

相机软件部分主要介绍两个部分:

<1> UIImagePickerController

<2> AVCapture

AVCapture的结构和使用在前面的博客中已经介绍了,这里先来看看UIImagePickerController的相关特点。

我们使用UIImagePickerController能够做点什么?

<1> UIImagePickerController

(1)输入源设置:相机、照片库

(2)设置前后摄像头

(3)设置视频质量

(4)设置照片、视频模式

(5)设置闪光灯打开方式

(6)视频编辑

(7)自己定义摄像界面

拍照部分:能够參考以下代码:

self.imagePicker = [[UIImagePickerController
alloc]
init];

self.imagePicker.delegate =
self;//设置托付代理

self.imagePicker.sourceType
= UIImagePickerControllerSourceTypeCamera;

self.imagePicker.videoQuality
= UIImagePickerControllerQualityTypeIFrame1280x720;

//        self.imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

self.imagePicker.cameraFlashMode
= UIImagePickerControllerCameraFlashModeOn;

self.imagePicker.cameraDevice
= UIImagePickerControllerCameraDeviceFront;

self.imagePicker.allowsEditing
= YES;//设置UIImagePickerController是否同意编辑

相机属性设置之后。通过模态势图将相机打开:

[self
presentViewController:self.imagePicker
animated:YES
completion:NULL];

在完毕以上设置之后就能够在回调方法中拿到我们拍摄的、或者从照片库中选取的图片:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info

{

//  获取可编辑Image

UIImage *image = [info
objectForKey:UIImagePickerControllerEditedImage];

UIImageWriteToSavedPhotosAlbum (image,
nil,
nil , nil);//保存到本地相冊

self.imageView.image = image;

self.imageView.contentMode
= UIViewContentModeScaleAspectFill;//照片的显示方式是否全屏

[self
dismissViewControllerAnimated:YES
completion:NULL];//模态视图退出

}

能够将照片保存起来,也能够对比片进行处理加入特效等等。

。。

视频录制部分:

视频录制设置和视频保存与拍照方法有些不一样。參考代码例如以下:

//      设置媒体类型。从当前摄像头获取媒体。

self.imagePicker.mediaTypes = [UIImagePickerController 
                 availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info

{

//  检測当前是
拍摄照片还是拍摄视频

NSString *mediaType = [info
objectForKey:
UIImagePickerControllerMediaType];

if (CFStringCompare((__bridge
CFStringRef) mediaType,
kUTTypeMovie,
0) ==
kCFCompareEqualTo)

{

//      保存视频,所选择视频的来源地址。

NSString *moviePath = [[info
objectForKey:
UIImagePickerControllerMediaURL] path];

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath))

{

UISaveVideoAtPathToSavedPhotosAlbum (moviePath,
nil,
nil, nil);

}

}

[self
dismissViewControllerAnimated:YES
completion:NULL];

}

自己定义相机拍摄界面:

这个功能在相机上用的也很的多。比方我们常常须要定制个性化的相机。比方美颜相机拍照功能等等。。

核心代码:

self.imagePicker.cameraOverlayView
= [自己定义UIView ,在UIView上设置各种button];

比如:闪光灯button:

UIView *view = [[UIView
alloc] initWithFrame:CGRectMake(0,
0, 280,
480)];

view.backgroundColor = [UIColor
clearColor];

UIButton *flashButton = [[UIButton
alloc] initWithFrame:CGRectMake(10,
10, 120,
44)];

flashButton.backgroundColor = [UIColor
colorWithRed:.5
green:.5
blue:.5 alpha:.5];

[flashButton setTitle:@"闪光灯"
forState:UIControlStateNormal];

[flashButton setTitleColor:[UIColor
whiteColor] forState:UIControlStateNormal];

好了。写到这里篇幅已经有点长了,AVCapture 放到下一篇中,以免引起视觉疲劳 呵呵。

时间: 2024-12-28 13:04:41

IOS:Camera的特性分析与使用的相关文章

IOS:Camera的特性分析与使用3_OPENGL特效

本来想用2个篇幅结束Camera软件部分的介绍,后来发现,非常重要的一点OpenGL还没介绍,所以又增加了这一篇. 这篇主要描述一下几个方面的内容: (1)录像界面OPENGL展示 (2)录像实时特效处理 (3)视频等比例缩放.旋转 如:等比例.16:9 4:3 1:1等 这个部分我思来想去缺失不太好讲,设计到的知识太多,尤其是OpenGL的一些专业知识,通过一篇博客普及OpenGL的知识显然不科学,所以只能了解一个流程,至于里面到底是怎么回事,请大家找本OpenGL的书看看,我想等这几个博客完

必应词典手机版(IOS版)与有道词典(IOS版)之软件分析【功能篇】

1.序言: 随着手机功能的不断更新和推广,手机应用市场的竞争变得愈发激烈.这次我们选择必应词典和有道词典的苹果客户端作对比,进一步分析这两款词典的客户端在功能和用户体验方面的利弊.这次测评的主要评测人是团队PM,另有其他同学给出建议. 2.软件分析与测评: 我们选择的是必应词典(version3.2.2 for ios)和有道词典(version 5.1.2 for ios) 2.1核心功能: 2.1.1词典功能: 众所周知词典的基本功能就是查词,在查词的基础上会给出相应的英文解释,例句以及用法

iOS iOS8新特性-UIAlertController

iOS iOS8新特性--UIAlertController 1. iOS7及iOS7之前警告类控件有UIAlertView和UIActionSheet 1.1 UIAlertView的使用 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"这是一个UIAlertView" delegate:nil cancelButtonTitle:@"取消" oth

iOS 8新特性之扩展(Extension)

本文由海水的味道收集整理,欢迎转载 当前版本 0.0.1  iOS 8新特性之扩展 一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据. 而在引入扩展之后,其他app可以与扩展进行数据交换.基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,它拥有自己的bundle, b

智能路由器安全特性分析

智能路由器安全特性分析 腾讯安全中心 · 2015/07/21 14:09 博文作者:zhuliang 0x00 前言 随着互联网的发展,越来越多公司推出了智能路由器,这些智能路由器给用户带来了众多便利的功能,同时也采用了一些传统路由器不具备的安全特性,本文在简要分析下这些安全特性,供相关技术人员参考. 0x01 概述 传统路由器有意或无意地使用了种种不安全的特性,如预留后门,这些后门原本是为了现场调试方便,但是也开放了黑客进入的通道.又比如某些路由器WPS(Wi-Fi Protected Se

iOS symbolicatecrash崩溃日志分析

1.保留发布程序的 .app文件 和 .dSYM文件 连同.crash文件放在同一个文件家里面. 2.在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library /PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources 或者/Applications/Xcode.app/Contents/Develope

iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS 9的新特性.以及使用Xcode 7.0如何编写一个简单的iOS 9的应用程序等内容. iOS 9新特性 在2015年6月8日即北京时间2015年6月9日的WWDC大会上,苹果公司代表讲解了很多iOS 9带来的新特性.本节将讲解一些主要的特性. Siri语音助手智能化 Siri语音助手的智能性能主要

iOS 8 新特性

这篇文章会介绍iOS8开发相关的主要特性. App 插件 通过支持插件,iOS8让我们可以系统指定的区域进行扩展,也就是为用户的特定需求提供自定义的方法.例如:可以通过App插件帮助用户分享他们的内容到社交网站.在用户安装了这个插件后,当他在App中点击分享按钮时就可以选择这个插件了.自定义的插件提供接受,认证,发布用户内容的功能.系统会在分享菜单中列出他们并且在用户点击后实例化他们. 在Xcode中,可以通过添加预先配置好的带插件的app来创建它.当用户安装有插件的app后,用户可以在设置中启

iOS应用崩溃日志分析

转自raywenderlich 作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! 如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美.于是你打开代码准备修复闪退的问题……但是,从何处着手呢? 这时iOS崩溃日志派上用场了.在大多数情况下,你能从中了解到关于闪退的详尽.有用的信息. 通过本教程,你将学习到一些常见的崩溃日志案例,以及如何从开发设备和