0

ImageMagick で OpenGL ビューを画像として保存したい。私はインターネットを検索し、それに関するいくつかの情報を見つけました。これで、glReadPixels を使用する必要があることがわかりました。それはOKですが、これらの読み取ったピクセルからどのように画像を作成するのでしょうか?


コードは次のようになります。

char *buffer = (char*) calloc(viewHeight * viewWidth * 4, sizeof(char));
glReadPixels( 0, 0, viewWidth, viewHeight, GL_RGBA, GL_BYTE, buffer );
Blob b( buffer, 4 * viewWidth * viewHeight );
Image saveimage(b);
saveimage.write("subimageGcrop.png");
4

1 に答える 1

1

を使用してピクセルを読み取る場合、それらをblobオブジェクトglReadPixelsにコピーする必要があります。次に、 Imageオブジェクトを作成し、ファイルに書き込むことができます。

このようなもの :

    char *buffer; // needs to be big enough
    glReadPixels( 0, 0, width, length, GL_BGR, GL_BYTE, buffer );
    Blob b( buffer, 3 * width * length );
    Image i( b, 3 * width * length, 3 );
    i.write( "img.jpg" );

パラメータの調整が必要になる場合があります。

于 2012-07-16T10:27:06.860 に答える