android摄像头获取图像.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android摄像头获取图像

android摄像头获取图像——第二弹 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?使用android内的Camera对象 (1)Camera是控制着摄像头的api,拥有一系列控制摄像头的上层方法;camera类能够调用底层的摄像头接口,完成启动摄像头、预览摄像头图像、拍照等功能; (2)功能 首先,可以在主activity中通过sufaceView接收camera的图像,并开启camera的startpreview方法,达到图像显示的目的; 如果不想在主activity中预览,只想得到图像或使用其他方式在activity中显示,可以通过重写callback函数,通过其中传入的? 数据,生成相应的图像并返回Bitmap格式(具体的调用方法将在下文提到) 然后,可以调用takePicture函数,进行拍照处理;使用autofocus方法可以先自动对焦再进行拍照; 最后,可以捕获相关的视频,本文主要讲解如何捕获图像,详细内容还是看头部连接,^_^ ; (3)一般调用步骤 ·检测并访问摄像头 —— 创建代码以检查摄像头存在与否并请求访问。 ·创建预览类 —— 创建继承自SurfaceView 并实现SurfaceHolder 接口的摄像预览类。此类能预览摄像的实时图像。 ·建立预览布局Preview Layout —— 一旦有了摄像预览类,即可创建一个view layout,用于把预览画面与设计好的用户界面控? 件融合在一起。 ·为捕获设置侦听器Listener —— 将用户界面控件连接到listener,使其能响应用户操作开始捕获图像或视频,比如按下按钮? 。 ·捕获并保存文件 —— 建立捕获图片或视频并保存到输出文件的代码。 ·释放摄像头 —— 摄像头使用完毕后,应用程序必须正确地将其释放,便于其它程序的使用。 (4)主要类型与方法介绍 ——surfaceView:SurfaceView为一个显示面板,可以用于显示图像;相当于mvc中view; ——SurfaceHolder:控制surface中的图像显示;相当于mvc模式中的的control; ——用户可以通过surfaceView的getHolder()方法得到该surfaceView的控制器对象:SurfaceHolder;并调用SurfaceHolder的? addCallback方法加入用户重写的继承自SurfaceHolder.Callback接口的对象: mSurfaceView = (SurfaceView) findViewById(R.id.mSurfaceView); holder = mSurfaceView.getHolder(); holder.addCallback(EX07_16);// ——SurfaceHolder.Callback接口的主要方法有: public void surfaceCreated(SurfaceHolder surfaceholder)//在surfaceView创建时调用 其他两个方法分别为改动和销毁时调用。 ——将SurfaceHolder加入camera中,以便预览时调用该对象显示图像:mCamera.setPreviewDisplay(holder); 误区:开始时觉得cam必须加入surfaceView的功能才能实现预览,但是后来的测试证明不需要加入surfaceView,即可实现camera? 的预览功能,只是图片不会显示。(这是理所应当的,因为camera有没有获得图像与是否有显示图像的面板没有任何关系;这证? 明了androidAPI还是比较开放的) ——Camera类的open()/opent(int i)方法用于打开摄像机 ——Camera类中的一些处理都是通过callback来进行的: /* 自动对焦后拍照 */ mCamera.autoFocus(mAutoFocusCallback); 其中mAutoFocusCallback继承自Camera.AutoFocusCallback接口,用户可以自定义的是对焦完成后的操作(比如延迟拍照等); 同样这里面preview和takepicture操作都需要放入callback进行用户自定义操作。 ——mCamera.takePicture(shutterCallback, rawCallback, jpegCallback);在takePicture方法里输入几个callback方法,实现? 用户的自定义操作。 ——mCamera.setPreviewCallback(pre);设置相机的预览回调函数,每当相机获取一幅图像的时候,都会调用这个对象的函数(这是最为重要的一个方法) (5)实

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档