尝试在SurfaceTexture中显示之前更改像素。
在OnFrameAvailableListener:
上签名的SurfaceTexture @Override
public void onFrameAvailable(SurfaceTexture surfaceTexture)
{
...
}
据我所知,在这种方法中想要改变像素,但是如何? 非常感谢你的任何答案和评论!
答案 0 :(得分:1)
您是如何从SurfaceTexture开始绘制输出的?您是刚刚使用TextureView类,还是有实际的GLSurfaceView或类似的以及一组OpenGL ES绘图调用来绘制预览?
如果您正在使用TextureView,那么您无能为力 - 它会处理绘图,您无法将自己注入中间。
使用GLSurfaceView,您基本上可以编写自己的OpenGL程序,该程序可以通过片段着色器等进行各种图像处理。但是你需要学习OpenGL编程的基础知识,或者至少找一个设置所有样板的样本。
如果您正在使用camera2,您还可以考虑使用RenderScript进行处理。官方Google示例应用HdrViewfinder使用RS在预览时进行实时处理。