void CRVGCaptureDlg::RawToBmp(CString bmpName)
{
CFile file1,file2;
BITMAPFILEHEADER fileHeader;
fileHeader.bfType=0x4d42;
fileHeader.bfSize=lHeight*lWidth*3+54;
fileHeader.bfReserved1=0;
fileHeader.bfReserved2=0;
fileHeader.bfOffBits=54;
BITMAPINFOHEADER infoHeader;
infoHeader.biSize=0x000028;
infoHeader.biWidth=lWidth;
infoHeader.biHeight=lHeight;
infoHeader.biPlanes=1;
infoHeader.biBitCount=24;
infoHeader.biCompression=0;
infoHeader.biSizeImage=lHeight*lWidth*3;
infoHeader.biXPelsPerMeter=0;
infoHeader.biYPelsPerMeter=0;
infoHeader.biClrUsed=0;
infoHeader.biClrImportant=0;
char rawbuffer[3000];
char bmpbuffer[512];
sprintf(rawbuffer,"%s","C:\\WINDOWS\\temp3.raw");
sprintf(bmpbuffer,bmpName);
file1.Open(bmpbuffer,CFile::modeWrite|CFile::typeBinary);
file1.Write((char *)&fileHeader,sizeof(BITMAPFILEHEADER));
file1.Write((char *)&infoHeader,sizeof(BITMAPINFOHEADER));
file2.Open(rawbuffer,CFile::modeRead|CFile::typeBinary);
static WORD buffer6[1052*1580];
file2.Read(buffer6,lHeight*lWidth);
file1.Close();
file2.Close();
}
void CRVGCaptureDlg::OnButton1()
{
char *bmpName="C:\\WINDOWS\\temp3.bmp";
AfxMessageBox("sss");
RawToBmp(bmpName);
AfxMessageBox("ss");
}
调试时 编译到 file1.Write((char *)&infoHeader,sizeof(BITMAPINFOHEADER));出错 提示