Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ 如何使用OpenGL保存OpenGL绘图?_Visual C++_Opengl_Glreadpixels - Fatal编程技术网

Visual c++ 如何使用OpenGL保存OpenGL绘图?

Visual c++ 如何使用OpenGL保存OpenGL绘图?,visual-c++,opengl,glreadpixels,Visual C++,Opengl,Glreadpixels,我用OpenGL命令画了一个屏幕。我必须将此屏幕保存为.bmp或.png格式。但我做不到。我正在使用glReadpixels,但无法继续。如何在C++中用OpenGL?< /p> < p>保存这个图,除非你感觉特别有野心(或者是受虐狂),你可能想使用这样的库已经支持这个。当前版本可以加载和/或保存为PNG和BMP格式,以及几十种其他格式 与IJG相比,它更倾向于使用OpenGL或DirectX(例如,它可以直接将文件加载到纹理中,反之亦然)。它来了!您必须包括WinGDI.h(我认为GL会这么做

我用OpenGL命令画了一个屏幕。我必须将此屏幕保存为.bmp或.png格式。但我做不到。我正在使用glReadpixels,但无法继续。如何在C++中用OpenGL?< /p> < p>保存这个图,除非你感觉特别有野心(或者是受虐狂),你可能想使用这样的库已经支持这个。当前版本可以加载和/或保存为PNG和BMP格式,以及几十种其他格式


与IJG相比,它更倾向于使用OpenGL或DirectX(例如,它可以直接将文件加载到纹理中,反之亦然)。

它来了!您必须包括WinGDI.h(我认为GL会这么做!)


我知道您要求使用光栅格式,但间接的方法是首先通过gl2ps输出矢量图形(http://www.geuz.org/gl2ps/). 该软件包和网站上提供了使用示例(http://www.geuz.org/gl2ps/#tth_sEc3).


然后,可以使用其他工具(Inkscape、Image/GraphicsMagick等)或库将矢量输出转换为您选择的格式。另外一个好处是,您可以在将来转换为任何分辨率的位图

有一件事需要解决:

bmih.biXPelsPerMeter = bmih.biYPelsPerMeter = 0;

否则,某些图片编辑无法正确打开。

保存文件实际上不是opengl的工作。你需要一些其他的库,比如libjpeg。我必须使用opengl库。它不能吗?你会使用DevIL和OpenGL。可以使用glReadPixels读回像素,然后在前面放一个标题,根据需要插入填充,然后另存为BMP文件,但OpenGL没有提供任何直接支持它的功能。如何使用DevIL?你可以帮我链接到你可以下载的网站。它包括相当好的文档。如果你遇到具体的问题,最好用单独的问题提问。你能用这个库给我讲讲吗。编辑glReadpixels()后:它是GL_BGR,而不是GL_RGB。
bmih.biXPelsPerMeter = bmih.biYPelsPerMeter = 0;