四.照相机和摄像头

原创 2015年11月20日 17:19:51

Demo:http://download.csdn.net/detail/liufeng703/9286207

1.图像抓取

通过摄像头我们可以抓取图像和捕获视频,图像抓取主要是UIImagePickerController类和UIImagePickerControllerDelegate委托协议,
其中前者是图像选择器控件对应的控制器类

1.1图像选择器

UIImagePickerController不仅可以实现选取图像还可以捕获视频,而且还可以从照相机中选取图像,从相簿和相机胶卷中选择。
相簿和相机胶卷有区别,前者包含后者,前者有网络下载的图片,收藏的图片等,后者只能看到的是通过照相机拍摄的照片。

—UIImagePickerController的主要属性是sourcesType 它枚举了3个常量

 [ ] UIImagePickerControllerSourcesTypePhotoLibrary  设置图片来源为相簿

 [ ] UIImagePickerControllerSourcesTypeCamera          设置图片来源为照片机

 [ ] UIImagePickerControllerSourcesTypeAlbum            设置图片来源为相机胶卷

还必须实现代理中的两个方法

 [ ]  —imagePickerController:didFinishPickingMediaWithInfo 当选择完成的时候调用

 [ ]  —imagePickerControllerDidCancel   当选择取消的时候调用

2.图像保存

有的时候需要把抓取的图像保存到设备中,可以使用`UIImageWriteToSavedPhotosAlbum`函数将图片保存到相机胶卷中,这个函数的定义如下:
void UIImageWriteToSavedPhotosAlbum
{
    UIImage  *image,
     id         completionTarget,
     SEL      completionSelector,
    void        *contextInfo
}

其中image参数是要保存的图片对象,completionTarget是保存完成后的回调对象,completionSelector是保存完成后的回调方法,contextInfo是上下文信息

然后completionSelector回调的方法的方法名可以自己自定义,但必须包含3个参数,且参数类型必须固定,
例子:

-(void)Image:(UIImage*)image SavingWithError:(NSError *)error ContentInfo:(void*)contentinfo

3.添加相机图层
有的应用需要自定义相机的控制按钮,这种情况下需要使用照相机图层技术,基本是将这个按钮放在一个透明视图上,然后将这个透明视图赋值给UIImagePickerController的cameraOverlayView属性

4.捕获视频
捕获视频的方法有两个,一个是录制视频保存到设备中,方便之后观看和分享,另一个是知识捕获视频数据流,不保存文件,使用它来开发一些增强现实的应用和游戏。我主要讲下捕获视频数据流,有两种方式:1.使用UIImagePickerController捕获 2.使用AVFoundation捕获

版权声明:本文为博主原创文章,未经博主允许不得转载。

C#调用本机摄像头

这段时间一个小项目中需要调用本机的摄像头进行拍照,网上搜集了一些资料以及解决的一些小问题,在此记录以便后续使用。 硬件环境:联想C360一体机,自带摄像头 编写环境:vs2010 语...
  • CsharpDonet
  • CsharpDonet
  • 2014年12月16日 09:25
  • 1416

ionic开发——手机相机摄像头与相册的调用

首先 1. 添加插件$cordovaCamera. cordova plugin add cordova-plugin-camera2. 在controller中添加依赖. 3. 代码 $scope....
  • yu17310133443
  • yu17310133443
  • 2016年08月31日 19:24
  • 2911

Arduino+TTL摄像头自制拉风数码相机

 当别人都是长枪大炮地挤在一起拍照时,你夹在当中用狗头来照相,当然显不出你的个性.如果换成是自己DIY的个性化数码相机,那就完全不一样了. Arduino支持SPI或TTL接口的摄像头(30万...
  • u010944680
  • u010944680
  • 2015年01月05日 21:17
  • 1419

安卓开启照相机并保存本地显示高清照片

新建一个安卓项目Traffic. 1.activity_main.xml先对界面进行布局:
  • u013841196
  • u013841196
  • 2016年08月04日 09:44
  • 187

Qt摄像头的翻转

最近在研究Qt摄像头, Qt5.2.0 支持的分辨率只有 640*480
  • lanxiaziyi
  • lanxiaziyi
  • 2014年11月24日 18:38
  • 775

数码相机如何当做摄像头(图文并茂版)

前言 不少朋友在买数码相机前都以为这东东当摄像头应该没问题吧?你看连有声动画都能拍,都可以当摄像机了,用来当个摄像头肯定是易如反掌了!不过等真的拿到手,尝试着用USB线连着当摄像机的时候,就会大骂DC...
  • AppleBBS
  • AppleBBS
  • 2005年06月11日 17:31
  • 3850

第一章:摄像起源与发展,中国人是始祖

慧眼网 邓林供稿 编者按:我们将推出由行业资深专家Louis编写的摄像头系列经典教材。该套教材分十余篇,介绍了摄像头的起源发展、基础知识、关键器件及专项技术等,以平实的语言系统介绍手机摄像头...
  • devillixin
  • devillixin
  • 2015年07月29日 10:24
  • 1760

AngularJS中使用HTML5手机摄像头拍照

1. 项目背景 公司开发一个网站,在做用户头像修改的时候领导提到增加一个由摄像头拍照实现修改头像的功能。因为我们网站是基于Html5进行开发,所以就直接采用H5来实现拍照。起初觉得这个功能很简单,但...
  • u011537073
  • u011537073
  • 2017年02月06日 23:59
  • 1341

Unity+Vuforia ar 摄像机自动对焦

using System.Collections; using System.Collections.Generic; using UnityEngine; using Vuforia; ...
  • zhaokuo_123456
  • zhaokuo_123456
  • 2017年03月13日 11:08
  • 804

andorid在 Fragment中调用摄像机

我现在一个activity中有三个multiple fragments ,我现在采集我第三个 fragments信息 在这个fragments 上我想启动相机或者图库,看下面代码 ...
  • javawebsoa
  • javawebsoa
  • 2014年12月23日 10:14
  • 1128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四.照相机和摄像头
举报原因:
原因补充:

(最多只允许输入30个字)