zoukankan      html  css  js  c++  java
  • Android中级第六讲相机对焦功能实现


                    博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved !  


            说起对焦功能,我们手机上的大多都是用手触屏,和拍照对焦两种方式,偶尔还会出现小方块;也有高级一点的,如利用传感器感知相机的移动,调用对焦功能;如利用runnable,实现几秒钟自动对焦一次。

           对焦:属于拍照前的操作,由于相机镜头和实物有一定的距离,不对焦,镜头拍摄不清楚;对焦后,镜头与实物之间距离适中,拍摄就清晰。就像初中我们用显微镜观察植物切片一样,用不同倍数的光圈,可以调出不一样的清晰度;相机也同样如此,需要硬件的支持,不过一般相机都有2x,4x,6x,8x,10x,分别是2倍、4倍、6倍、8倍、10倍光距,可以拍摄更远的照片。

           分辨率:即图像的像素点分布密度,当然像素越密,图片越清楚,一般像Samsung S2以上、iphone4S以上,都拥有800w以上的像素,看照片就十分清晰。

           自动对焦,需要理解一个知识点camera.takePicture(ShutterCallback,PictureCallback1,PictureCallback2);

         public class Camera360 implements AutoFocusCallback, PictureCallback,

    		ShutterCallback {
    
    	@Override
    	public void onAutoFocus(boolean success, Camera camera) {
    		// TODO Auto-generated method stub
    		if (success) {
    			// 有时候,拍照时光线阴暗,对焦可能就不容易成功;所以判断下,如果对焦成功,就保存图片
    			// 停止预览
    			camera.stopPreview();
    			// 拍照
    			camera.takePicture(this, null, this);
    		}
    	}
    
    	@Override
    	public void onPictureTaken(byte[] data, Camera camera) {
    		// TODO Auto-generated method stub
    		// 保存图片data得到的就是图片
    		// 保存完图片,camera再start,继续拍照
    	}
    
    	@Override
    	public void onShutter() {
    		// TODO Auto-generated method stub
    		// 作用于拍照瞬间,可以响声音,也可以振动,用做提示
    		// 此时图片数据并未保存
    	}
    
    }

    只要实现AutoFocusCallback接口即可,并在拍照时调用就行。如果要先对焦,再拍照,也可以实现一个onTouch方法,当用户点手触摸surface对象时,用事先声明的Camera对象来调用autoFocus方法就行。


      小知识点:ShutterCallback主要是快门按下瞬间会执行的回调,不重要;重要的是后面两个,PictureCallback1是保存未压缩的的图片,PictureCallback2是保存JEPG格式的图片。

    留下一个疑问:知道为什么PictureCallback1里有时data会为空,而PictureCallback2里data不为空吗?



  • 相关阅读:
    一个神奇的类库,可以执行字符串表达式
    Common lang一些边界方法总结(好记性不如烂笔头,需要慢慢积累).一定要利用好现有的轮子,例如Apache common与Google Guava
    借助强大的IDEA开发ide高效实现equals,hashcode以及toString方法
    数字签名是什么?
    字符串组合
    空格替换
    字符串替换 (replace)
    为什么要区分稳定和非稳定排序
    算法稳定性
    华为2018校招技术岗笔试
  • 原文地址:https://www.cnblogs.com/fengju/p/6174469.html
Copyright © 2011-2022 走看看