如何绘制比设备分辨率更大的分辨率 GLSurfaceView?

How can I draw bigger resolution GLSurfaceView than device's resolution?

我正在使用 GLSulfaceView 开发静音相机应用程序,该应用程序从预览中捕获图片。

为了拍摄照片,我使用

GLES20.glReadPixels(0, 0, surfaceWidth, surfaceHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ib);

这次我的图片和phone的分辨率一样。

为了获得更高分辨率的图片,我认为应用程序必须绘制比适合设备屏幕的设备屏幕分辨率更高分辨率的预览并捕获预览。

如何绘制比设备屏幕分辨率更高分辨率的预览?

glReadPixels 无法缩放图像 - 您只能 1:1 读取帧缓冲区的当前内容。

使用当前图像作为纹理,并将其渲染到更大的离屏帧缓冲区。但是请注意,简单的线性过滤(这是 OpenGL ES 所能提供的全部)不会是特别高质量的放大。