我想从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:哪一个是最好的方法?比较被认可,例如性能\兼容性。