Android Camera2 API在SurfaceTexture中进行预处理和编写帧



在显示在surfaceTexture中之前尝试更改像素。

在frameavailablelistener上签名的surfaceTexture:

 @Override 
 public void onFrameAvailable(SurfaceTexture surfaceTexture) 
 { 
    ... 
 }

我在这种方法中理解并想更改像素,但是如何?非常感谢您的任何答案和评论!

您如何从surfaceTexture中绘制输出?您是在使用TextureView类,还是使用实际的GLSURFACEVIEW或类似的GLSURFACEVIEW或一组OpenGL ES绘图调用来绘制预览?

如果您使用的是TextureView,那么您无能为力 - 它可以照顾图纸,而您无法将自己注入中间。

使用GlSurfaceView,您基本上是编写自己的OpenGL程序,可以通过片段着色器等进行各种图像处理。但是您需要为此学习OpenGL编程的基础知识,或者至少找到设置所有样板的样本。

如果您使用的是Camera2,也可以考虑使用RenderScript进行处理。官方的Google示例应用程序HDRViewFinder使用RS在预览上进行实时处理。

最新更新