保存后是代码是
void CGraTestView::saveBMP(char* name, int width, int height, unsigned char* data)
{
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;

infoHeader.biSize = 40;
infoHeader.biWidth = width;
infoHeader.biHeight = height;
infoHeader.biPlanes = 1;
infoHeader.biBitCount = 24;
infoHeader.biCompression = BI_RGB;
infoHeader.biSizeImage =width* height * 3;
infoHeader.biXPelsPerMeter = 0;
infoHeader.biYPelsPerMeter = 0;
infoHeader.biClrUsed = 0;
infoHeader.biClrImportant = 0; fileHeader.bfType = 0x4D42;
fileHeader.bfReserved1 = 0;
fileHeader.bfReserved2 = 0;
fileHeader.bfOffBits = 54;
fileHeader.bfSize = (DWORD)(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+width* height * 3); FILE *fd; if( !(fd = fopen(name,"wb+")) )
{
AfxMessageBox(_T("错误"));
exit(0);
}
fwrite(&fileHeader,1,sizeof(BITMAPFILEHEADER),fd);
fwrite(&infoHeader,1,sizeof(BITMAPINFOHEADER),fd);
fwrite(data,1,width* height * 3,fd);
fclose(fd);
}
void CGraTestView::saveSceneImage(char* tname)
{
GLint pView[4];
glGetIntegerv(GL_VIEWPORT,pView); GLsizei numComponet = 3;
GLsizei bufferSize = pView[2]*pView[3]*sizeof(GLfloat)*numComponet;
GLfloat* _data = new GLfloat[bufferSize];
unsigned char*  data = new unsigned char[bufferSize];
 
glReadPixels(pView[0],pView[1],pView[2],pView[3],GL_RGB,GL_FLOAT,_data); for (int i = 0 ; i <bufferSize ; i ++)
{
data[i] = _data[i] * 256;
}
saveBMP(tname,pView[2],pView[3],data);
delete[] data;
delete[] _data;
}问题在哪里,谢谢啦OpenGLMFCbmp保存