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,
) ==
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
,
, , )];

view.backgroundColor = [UIColor
clearColor];

UIButton *flashButton = [[UIButton
,
, , )];

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

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

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

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

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

  1. 《iOS应用逆向工程:分析与实战》

    <iOS应用逆向工程:分析与实战> 基本信息 作者: 沙梓社    吴航    刘瑾 丛书名: 信息安全技术丛书 出版社:机械工业出版社 ISBN:9787111450726 上架时间:2 ...

  2. 【HELLO WAKA】WAKA iOS客户端 之一 APP分析篇

    由于后续篇幅比较大,所以调整了内容结构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 APP分析篇 [HELLO WAKA]WAKA iOS客户端 之二 架构设计与实现篇 [HELL ...

  3. MySQL · 特性分析 · 优化器 MRR & BKA【转】

    MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...

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

    iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS ...

  5. iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    时间2013-08-20 12:49:20 GoWhich原文  http://www.gowhich.com/blog/view/id/343 苹果官方 Crash文件分析方法 (iOS系统Cras ...

  6. 新书《iOS应用逆向工程:分析与实战》

    前无古人!小白福音!国内第一本iOS应用逆向工程类图书<iOS应用逆向工程:分析与实战>就要空降啦~! 你是否曾因应用上线的第一天即遭破解而无奈苦恼,想要加以防范,却又束手无策? 你是否曾 ...

  7. iOS 8 新特性

    这篇文章会介绍iOS8开发相关的主要特性. App 插件 通过支持插件,iOS8让我们可以系统指定的区域进行扩展,也就是为用户的特定需求提供自定义的方法.例如:可以通过App插件帮助用户分享他们的内容 ...

  8. iOS绘图框架CoreGraphics分析

    由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐.因此,本文主要介绍一下iOS的绘图 ...

  9. iOS开发——高级特性&Runtime运行时特性详解

    Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 ...

随机推荐

  1. bzoj 2152

    /************************************************************** Problem: 2152 User: idy002 Language: ...

  2. Spark参数配置总结

  3. linux基础命令学习 (九)文本操作

    一.head 1.语法: head [选项] [文件] 2.选项 -q 隐藏文件名 -v 显示文件名 -c<字节> 显示字节数 -n<行数> 显示的行数 3.示例 范例一:查看 ...

  4. ALAssetsLibrary使用

    在iOS中,我们调用摄像头和选择相册中的资源,我们可以使用:UIImagePickerController类来完成.   当然,我们也可以不使用UI的形式来访问iOS设备的相册资源. 那就是使用:AL ...

  5. HelloWorld 和相关设置

    写这篇文章的初衷很简单,就是想再一次证明 IntelliJ IDEA 对于 Java 开发人员来说,确实比 eclipse 要好用得多,鉴于目前市面上关于 IntelliJ IDEA 的教程比较少,叙 ...

  6. MySQL MyISAM和InNodb备份与恢复技巧

    1. 为什么要备份数据库 对数据库来说,最重要也最容易被忽视的就是备份.由于不可预测性,偶然的事件可能会导致非常惨重的损失. 数据越是重要,数据的变化越频繁,备份越发需要经常进行. 备份周期根据不同业 ...

  7. 用 C# 做人脸检测(基于EmguCV)

    c#datagridmatlab人脸识别图像处理path 下载源码 准备工作(必须) 下载  EmguCV 傻瓜安装后,把 bin 目录添加到环境变量里去,比如安装在 X:\EmguCV\ 目录下,就 ...

  8. SourceInsight中文字体

    转载自: http://blog.chinaunix.net/uid-29094179-id-3889999.html 1.正确显示中文注释 1)Options->Style Propertie ...

  9. weblogic打补丁,bsu方法

    刚装了10.3.6版本的weblogic,想把版本补丁到10.3.6.0.12 我用的系统是windows 8.1 ,呵呵 查看版本 执行java weblogic.version WebLogic ...

  10. Mac OSX 系统目录结构(转)

    摘要 在OS X的系统中,不再有Windows用户熟悉的C盘.D盘,这是因为OS X底层是Unix系统,其目录机构符合Unix系统的规范.MAC机器主板使用了Intel主导的EFI标准,硬盘分区格式采 ...