我想从 OpenGL 窗口截取屏幕截图并将其保存到任何类型的图像文件中。此处描述的 DevIL 方法提供了正确的 PNG。将 ilSaveImage 替换为 ilSave,您可以将图像保存为不同的格式。这里的SOIL 方法给出了垂直翻转的图像。替换下面的代码
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:哪一个是最好的方法?比较赞赏例如性能\兼容性。