如何从Android GLSurfaceView获取YUV?

时间:2016-01-09 14:58:01

标签: android android-camera glsurfaceview

有没有办法通过GLSurfaceView从Android相机获取YUV缓冲区? (不是来自onPreviewFrame)

1 个答案:

答案 0 :(得分:3)

您可以使用Android Camera API从Android相机获取YUV缓冲区。如果您只想要一个帧,那么没有理由让OpenGL ES参与其中。使用ImageReader来避免数据副本。

OpenGL ES适用于RGB而非YUV,因此GLES渲染的任何内容都经过颜色空间转换。如果您愿意,可以在片段着色器中将转换回YUV。

无论如何,SurfaceView类不是处理管道中的中间体;它们是显示端点。你无法从他们那里得到任何东西。有关详细信息,请参阅arch doc