Android Camera 实时滤镜(八)

一、Android Camera可以做哪些?
1、功能
  • 拍摄相片
  • 视频录制
  • 取景器(扫描类应用,如人脸识别,名片识别,条形码识别)
2、根据Camera API实现自己的拍照程序,共7步
Created with Raphaël 2.1.2 1.初始化 SurfaceHolder 2.相机实例 SurfaceCreated 3.回调 SurfaceChanged 4.清理 SurfaceDestroyed 5.布局 SurfaceView 6.按钮 添加拍照按钮
二、Camera Preview是什么?

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

三、如何获取Camera Preview中的数据?
  • Camera.PreviewCallback
  • setPreviewCallback
    屏幕上显示一个新的预览帧时调用onPreviewFrame方法(时时获取)
  • setPreviewCallbackWithBuffer
    其与setPreviewCallback的工作方式相同,但要求指定一个字节数
    组作为缓冲区,用于预览图像数据(addCallbackBuffer)
四、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

这里写图片描述

问题
1、屏幕卡顿,用户体验低
2、性能低,影响系统性能

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

转载于:https://my.oschina.net/u/141969/blog/609482

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值