OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(六)

来源:互联网 发布:js encode 编辑:程序博客网 时间:2024/06/13 09:04

基础6——相机预览(常用方法简介)


android开发中的相机预览有无数种方法,所有没有用到OpenGLES和GLSurfaceView的方法,基本都是消耗CPU资源的,当一部手机的CPU不够强大,很可能造成卡顿等现象,也就是会让用户体验很差。
在相机开发过程中,一般来说拍照、保存图片,就达成了它的使命,不过在将来的发展过程中,相机往往不再仅仅是拍照功能,还有一些比如说滤镜、修图、识别等功能,如果双镜头头戴设备,还可以往AI或VR设备发展。
但这些强大的功能,在android这种小型移动平台中,如果占用了CPU资源,后果可想而知,所以不容分说,一定直接调用GPU资源来做。

在没有接触相机预览渲染之前,单纯的预览、拍照、保存图片,提供一下一些常用方法(代码简写,靠记忆写的,想知道详细步骤可以自行去百度查),获取到帧数据可以对帧数据进行操作:
1、如果用SurfaceView的话
implements SurfaceHolder.Callback
重写:
SurfaceCreated\SurfaceChanged\SurfaceDestroyed三个方法
相机帧数据获取:
Camera.PreviewCallback实现后,重写的方法onPreviewFrame中的byte[] data参数即为帧数据
绑定相机方法:
mCamera.setPreviewDisplay(mSurfaceView)
2、如果用TextureView的话
implements TextureView.SurfaceTextureListener
重写:
onSurfaceTextureAvailable\onSurfaceTextureSizeChanged\onSurfaceTextureUpdated\onSurfaceTextureDestroyed
相机帧数据获取:
同上一个方法
绑定相机方法:
mCamera.setPreviewTexture(mSurfaceTexture)

当然,以上是一些常用的方法,接下来来介绍GLSurfaceView配合OpenGLES进行相机预览

上一节
下一节

0 0
原创粉丝点击