• Android 关于获取摄像头帧数据解码


    由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折.

    Camera mCamera = Camera.open();
    Camera.Parameters p = mCamera.getParameters();
    p.setPreviewFormat(ImageFormat.NV21);
    /*这是唯一值,也可以不设置。有些同学可能设置成 PixelFormat 下面的一个值,其实是不对的,具体的可以看官方文档*/
    
    mCamera.setParameters(p);
    mCamera.startPreview();

      

    下面是解码核心部分:

    	@Override
    	public void onPreviewFrame(byte[] data, Camera camera) {		
    		Size size = camera.getParameters().getPreviewSize();		
    		try{
    			YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null);
    			if(image!=null){
    				ByteArrayOutputStream stream = new ByteArrayOutputStream();
    				image.compressToJpeg(new Rect(0, 0, size.width, size.height), 80, stream);
    				Bitmap bmp = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
    
          				stream.close();
    			}
    		}catch(Exception ex){
    			Log.e("Sys","Error:"+ex.getMessage());
    		}
    	}
    

    代码很简单。就是把YUV数据转成 Bitmap 就行了,系统提供 YuvImage 类。

    版权声明 作者:夏荣全
    网站:http://www.lyout.com 邮箱:lyout(at)163.com
    扣扣:249775085
    本文版权归作者所有,转载请注明出处:http://www.cnblogs.com/lyout/
  • 相关阅读:
    PDIUSBD12指令
    (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)
    静态测试
    一种循环buffer结构
    RL78 芯片复位指令
    XModem协议
    位反转的最佳算法
    CCP 协议
    AUTOSAR 架构
    HEX 文件格式
  • 原文地址:https://www.cnblogs.com/lyout/p/2400370.html
Copyright © 2020-2023  润新知