针对GPU框架opengl渲染的数据,我们只能从GLSurfaceView通过glReadPixels获取预览数据,转化为RGBA格式再dump下来,这个过程不同于dump从底层传入的YUV预览帧数据,以下就是dump GLSurfaceView的详细过程。
一、dump GPU框架渲染数据
glReadPixels方法
if(mCount%30 == 0)
{
//创建byte[]数组获取GPU渲染数据
byte[] Data = new byte[mOutputWidth * mOutputHeight * 4];
ByteBuffer buf = ByteBuffer.wrap(Data);
buf.order(ByteOrder.LITTLE_ENDIAN);
//通过glReadPixels方法获取GLSurfaceView内容
GLES20.glReadPixels(0, 0, mOutputWidth, mOutputHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf);
//saveByteToFile(Data, "process");
Bitmap bmp = setBitmapPixel(null, mOutputWidth, mOutputHeight, Data);
saveRGBAtoPNGFile(bmp);
}
保存RGBA数据为YUV格式
public void saveB