使用跨平台库将OpenGL输出保存到图像

时间:2015-04-02 11:04:10

标签: c++ opengl screenshot soil devil

我想从OpenGL窗口截取屏幕截图并将其保存到任何类型的图像文件中。描述的here的DevIL方法给出了正确的PNG。用ilSave替换ilSaveImage,您可以以不同的格式保存图像。 SOIL方法here提供垂直翻转图像。替换

下面的代码
 vector< unsigned char > buf( w * h * 3 );

 glPixelStorei( GL_PACK_ALIGNMENT, 1 );
 glReadPixels( 0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, &buf[0] );

 int err = SOIL_save_image ("img.bmp", SOIL_SAVE_TYPE_BMP, w, h, 3, &buf[0]);

只有一行可以创建正确的图像。

 int err = SOIL_save_screenshot("img.bmp",SOIL_SAVE_TYPE_BMP, 0, 0, w, h);

Q1:使用其他库是否更方便?

Q2:哪一个是最好的方法?比较被认可,例如性能\兼容性。

0 个答案:

没有答案