glReadPixels到ImageMagick

时间:2012-07-16 10:20:29

标签: objective-c xcode image cocoa opengl

我想用ImageMagick将OpenGL视图保存为图像。我搜索了互联网并找到了一些相关的信息。所以我现在知道我需要使用glReadPixels。多数民众赞成,但如何从这些带有像素的像素中制作图像?


现在代码如下所示:

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");

1 个答案:

答案 0 :(得分:1)

使用glReadPixels读取像素时,需要将它们复制到blob对象。然后,您可以创建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" );

您可能需要调整参数。