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]);
1 行だけで正しいイメージが作成されます。
int err = SOIL_save_screenshot("img.bmp",SOIL_SAVE_TYPE_BMP, 0, 0, w, h);
Q1: 他のライブラリを使用するより便利な代替手段はありますか?
Q2: どの方法が最適ですか? パフォーマンス\互換性などの比較を歓迎します。