glReadPixels到ImageMagick

问题描述:

我想用ImageMagick将OpenGL视图保存为图像。我搜索了互联网,发现了一些有关这方面的信息。所以我现在知道我需要使用glReadPixels。那好,但是如何从这些像素中产生图像呢?glReadPixels到ImageMagick


现在的代码如下所示:

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

当你阅读使用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"); 

您可能需要调整参数。

+0

我不知道为什么,但读取blob数据时遇到SIGABRT错误 – hockeyman 2012-07-16 10:43:17

+0

@JuliusPetraška你可以在你的问题中发布代码(你有什么试过)? – 2012-07-16 10:44:16

+0

是的。我发布了它 – hockeyman 2012-07-16 10:46:46