繁体   English   中英

C ++图像处理

[英]C++ Image Manipulation

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

该程序接收图像然后显示它。 我在OpenGL中对纹理这样做。 当我拍摄游戏截图时,它通常是700x400左右。 我将高度和宽度输入到我的程序中,通过添加空白区域将图像大小调整为1024x1024(使其成为POT纹理以获得更好的兼容性)(原始图像保留在左上角并一直向(700,400)和休息只是空白;有人知道这个术语吗?)然后将它加载到我的程序中并调整角落,这样只显示从(0,0)到(700,400)的部分。

这就是我处理图像显示的方式。 现在,我想自动完成。 所以我需要一张700x400的图片,将其传递给程序,该程序将获得图像的宽度和高度(700x400),通过添加空格将其大小调整为1024x1024,然后加载它。

那么有谁知道能够做到这一点的C ++库? 我仍然会手动拍摄截图。

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

谢谢!

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

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

来自SOIL文档:

可以自动将图像重新缩放到下一个最大的二次幂大小

可以为GUI元素或启动画面加载rectangluar纹理(需要GL_ARB / EXT / NV_texture_rectangle)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM