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

标签 java android opengl-es

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

为了捕捉图片,我使用

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

此时,我的图片分辨率与手机分辨率相同。

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

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

最佳答案

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

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

关于java - 如何绘制比设备分辨率更大的 GLSurfaceView 分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50490609/

相关文章:

android - 屏幕锁定后更新 UI

opengl-es - 在带有 OpenGLES 的 iOS 上如何拥有多个 View ?

java - 是否有关于使用 Hessian 时可能抛出哪些运行时异常或潜在原因的文档?

java - monad 的一般情况可以在 java 6 中表达吗?

android - AWS S3 TransferService 上传失败但没有错误

Android 六边形 ImageView

java - 使用 compose() 而不是 lambda 表达式的原因是什么?

java - 如何生成只包含依赖信息的POM?

java - 在 Android 上将 int 数组转换为位图

java - Android 中资源的动态命名,无需 getIdentifier