安卓相机使用OpenGLES渲染
使用OpenGL ES实现相机滤镜
相机应用通过将SurfaceView作为消费端,相机框架从HAL拿到相机数据帧后会直接将buffer数据送到SurfaceFlinger进程进行预览显示。如果相机应用想做更复杂的滤镜效果,那就不应该使用这种方式,而应该使用SurfaceTexture作为消费端,通过回调获取到相机图像数据,再通过把图像数据作为纹理,由OpenGL ES进一步做渲染处理。在渲染过程中,用户可以通过图像算法自由控制滤镜效果。
相机应用通过将SurfaceView作为消费端,相机框架从HAL拿到相机数据帧后会直接将buffer数据送到SurfaceFlinger进程进行预览显示。如果相机应用想做更复杂的滤镜效果,那就不应该使用这种方式,而应该使用SurfaceTexture作为消费端,通过回调获取到相机图像数据,再通过把图像数据作为纹理,由OpenGL ES进一步做渲染处理。在渲染过程中,用户可以通过图像算法自由控制滤镜效果。
Android 12是Google研发的操作系统,于2021年5月19日凌晨发布。
截至2021年9月9日,Android 12更新至Beta5。
2021年10月5日,谷歌宣布,已经将Android 12源代码推送到Android 开源项目(AOSP),意味着Android 12正式发布。
图像传感器,也就是相机的感光元器件。就像传统汽车的发动机一样,图像传感器就是相机设备的灵魂所在。
camera api2在关闭相机时,一般先调用flush流程将当前请求停止,并且处理掉已经下发的请求,确保每一个从fwk下到hal的请求都返回了。然后再调用close流程断开相机客户端。
在API2中,流的创建,和配置是在会话创建过程完成的,之后再下发请求。
在API1中,流的创建,配置和请求下发都是在startPreview接口中完成。
Android R版本增加了新的CONTROL_ZOOM_RATIO的方式进行变焦调节,可以更精确的进行zoom调节。
通过CONTROL_ZOOM_RATIO_RANGE查询支持的zoomratio范围。
这篇文章收录在相机系列文章:相机基础知识大纲
这篇文章为入门相机的同学简单介绍了相机的发展过程以及基本原理,这些基础知识其实很重要,可以帮助我们更好的理解相机拍摄出图的过程。
小孔成像,我国的学者—墨翟(墨子)和他的学生,做了世界上第一个小孔成倒像的实验,解释了小孔成倒像的原因,指出了光沿直线进行的性质,早于牛顿2000多年就已经总结出相似的理论 。这是对光沿直线传播的第一次科学解释。
用一个带有小孔的板遮挡在墙体与物之间,墙体上就会形成物的倒影,我们把这样的现象叫小孔成像。前后移动中间的板,墙体上像的大小也会随之发生变化,这种现象说明了光沿直线传播的性质。