gpt4 book ai didi

C++ 图像处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:12 29 4
gpt4 key购买 nike

所以我为游戏制作了这个程序,需要帮助让它更自动化一些。

程序接收图像然后显示它。我正在对 OpenGL 中的纹理执行此操作。当我截取游戏截图时,它通常约为 700x400。我将高度和宽度输入到我的程序中,通过添加空格(原始图像位于左上角并一直到 (700,400) 和rest 只是空白;有人知道这个术语吗?)然后将其加载到我的程序中并调整角,以便仅显示从 (0,0) 到 (700,400) 的部分。

这就是我处理图像显示的方式。现在,我想让它自动进行。所以我会拍一张 700x400 的照片,将其传递给程序,该程序将获取图像的宽度和高度 (700x400),通过添加空白将其调整为 1024x1024,然后加载它。

那么有人知道能够做到这一点的 C++ 库吗?不过,我仍会手动截取屏幕截图。

我正在使用简单 OpenGL 图像库 (SOIL) 加载图片 (.bmp) 并将其转换为纹理。

谢谢!

最佳答案

您实际上不必通过添加空白来调整大小以正确显示图像。事实上,这是一种非常低效的方法,尤其是因为您以 .bmp 格式存储图像。

SOIL 能够在加载纹理时自动添加空白区域 - 也许只是尝试按原样加载文件,而不进行任何操作。

来自 SOIL 文档:

Can automatically rescale the image to the next largest power-of-two size

Can load rectangluar textures for GUI elements or splash screens (requires GL_ARB/EXT/NV_texture_rectangle)

无论如何,您不必使用纹理在屏幕上显示像素。我假设您没有使用着色器进行渲染 - 如果它全部通过固定管道,则有 glDrawPixels函数,这样会简单很多。请记住将您的 SOIL 调用更改为 SOIL_load_image

关于C++ 图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11012248/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com