java - 如何绘制比设备分辨率更大的分辨率 GLSurfaceView?
问题描述
我正在使用 GLSulfaceView 开发静音相机应用程序,该应用程序从预览中捕获图片。
为了拍摄照片,我使用
GLES20.glReadPixels(0, 0, surfaceWidth, surfaceHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ib);
此时,我的图片分辨率与手机分辨率相同。
为了获得更高分辨率的图片,我认为应用程序必须绘制比适合设备屏幕的设备屏幕分辨率更高的分辨率预览并捕获预览。
如何绘制比设备屏幕分辨率更高的分辨率预览?
解决方案
glReadPixels
无法缩放图像 - 您只需 1:1 读取帧缓冲区的当前内容。
将当前图像用作纹理,并将其渲染到更大的离屏帧缓冲区。但是请注意,简单的线性过滤(OpenGL ES 可以为您提供的所有内容)不会是特别高质量的升级。
推荐阅读
- python - 使用 EMA 计算列向现有 Pandas 数据框添加行
- c++ - 什么类型的 __iter_concept<_Iter>
- reactjs - “ UnhandledPromiseRejectionWarning:错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头”在不正确的凭据上
- c# - 新的 .Net MAUI App 项目抛出“当前上下文中不存在名称‘InitializeComponent’”构建错误
- javascript - javascript -Uncaught ReferenceError: 年龄未定义
- python - 如何在 Apache/Flask 中将多行字符串记录为单个日志条目?
- python - 如何在熊猫的两个不同文件夹中读取同名文件?
- python - 如何使 Lux 包在 Python 中工作?
- typescript - 如何使 tsconfig.json 路径别名在 Razzle 项目中工作?
- amazon-web-services - EC2 实例拒绝连接