Android Camera2 API在SurfaceTexture中预处理和编写框架

时间:2016-12-05 10:29:56

标签: android pixels frames android-camera2

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

在OnFrameAvailableListener:

上签名的SurfaceTexture
 @Override 
 public void onFrameAvailable(SurfaceTexture surfaceTexture) 
 { 
    ... 
 }

据我所知,在这种方法中想要改变像素,但是如何? 非常感谢你的任何答案和评论!

1 个答案:

答案 0 :(得分:1)

您是如何从SurfaceTexture开始绘制输出的?您是刚刚使用TextureView类,还是有实际的GLSurfaceView或类似的以及一组OpenGL ES绘图调用来绘制预览?

如果您正在使用TextureView,那么您无能为力 - 它会处理绘图,您无法将自己注入中间。

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

如果您正在使用camera2,您还可以考虑使用RenderScript进行处理。官方Google示例应用HdrViewfinder使用RS在预览时进行实时处理。