2012-07-16 3 views
0

ImageMagick을 사용하여 OpenGL보기를 이미지로 저장하려고합니다. 나는 인터넷을 검색했고 그 정보를 발견했다. 이제 glReadPixels를 사용해야한다는 것을 알았습니다. 그렇군요. 그렇다면 이러한 판독 된 픽셀로부터 어떻게 이미지를 만들까요?ImageMagick에 대한 glReadPixels


이제 코드는 다음과 같습니다 : 당신이 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

, 당신은 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

블롭 데이터를 읽을 때 왜 SIGABRT 오류가 발생합니까? – hockeyman

+0

@ JuliusPetraška 질문에 코드를 게시 할 수 있습니까? –

+0

예. 내가 게시했습니다 – hockeyman

관련 문제