首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用stbi_write_png保存高清图片

如何用stbi_write_png保存高清图片
EN

Stack Overflow用户
提问于 2021-01-20 23:23:36
回答 1查看 59关注 0票数 0

我正在使用OpenGL来模拟对象。并使用stbi_write_png保存图片,但图片大小只有200K多,放大后也不是很清晰。所以我想知道是否有其他方法可以用C++代码保存高清晰度图片。我的代码如下:

代码语言:javascript
复制
int SaveScreenshot(const char *filename)
{
    GLint viewport[4];
    glGetIntegerv(GL_VIEWPORT, viewport);

    int x = viewport[0];
    int y = viewport[1];
    int width = viewport[2];
    int height = viewport[3];

    char *data = (char*)malloc((size_t)(width * height * 4)); // 3 components (R, G, B)

    if (!data)
        return 0;

    glPixelStorei(GL_PACK_ALIGNMENT, 1);
    glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
    stbi_flip_vertically_on_write(1);

    int saved = stbi_write_png(filename, width, height, 4, data, 0);

    free(data);

    return saved;
}
EN

回答 1

Stack Overflow用户

发布于 2021-01-20 23:57:22

配对选项:

  1. 渲染到大于默认大小的帧缓冲区FBO和glReadPixels()
  2. 渲染到multiple tilesglReadPixels(),并使用缝合成单个较大图像的最终过程
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65812476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档