Android Camera 实时滤镜(八)

1、Android Camera能够作哪些?

一、功能

  • 拍摄相片
  • 视频录制
  • 取景器(扫描类应用,如人脸识别,名片识别,条形码识别)

二、根据Camera API实现本身的拍照程序,共7步

Created with Raphaël 2.1.2 1.初始化 SurfaceHolder 2.相机实例 SurfaceCreated 3.回调 SurfaceChanged 4.清理 SurfaceDestroyed 5.布局 SurfaceView 6.按钮 添加拍照按钮

2、Camera Preview是什么?

这里写图片描述
摄像头返回的RAW数据通过isp处理后造成yuv数据,android系统将该数据绘制到取景区上,不断绘制帧数据造成实时预览数据。android

3、如何获取Camera Preview中的数据?

  • Camera.PreviewCallback
  • setPreviewCallback
    屏幕上显示一个新的预览帧时调用onPreviewFrame方法(时时获取)
  • setPreviewCallbackWithBuffer
    其与setPreviewCallback的工做方式相同,但要求指定一个字节数
    组做为缓冲区,用于预览图像数据(addCallbackBuffer)

4、Android Camera 实时滤镜怎么作?

Created with Raphaël 2.1.2 0.取景区大小设置为1像素 1.取景区获取预览帧数据yuv 2.获取来的YUV420SP与RGB进行转换 3.进行滤镜算法渲染 4.将处理后的图层绘制于屏幕上

YUV转RGB的算法,转换的公式通常以下,也是线性的关系:
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U算法

这里写图片描述

问题
一、屏幕卡顿,用户体验低
二、性能低,影响系统性能markdown

如何优化?
- 提升流程度
图像渲染采用OpenGL ES SurfaceTexture
- 提升性能
GPU优化布局

相关文章
相关标签/搜索