C++BMP图像读取问题
void CMyBmpMatch::OpenFile(CString FileName,BYTE *lpBits)
{
CFile file;
CString open_path = _T("c:\\Tulip1.bmp");
if(!file.Open(open_path,CFile::modeRead))
{
AfxMessageBox(_T("不能打开文件"));
return;
}
BITMAPFILEHEADER BFH;
file.Read(&BFH, sizeof(BITMAPFILEHEADER));
if(BFH.bfType != 'MB')
{
AfxMessageBox(_T("不是BMP位图文件或数据有误!\n"));
return;
}
BITMAPINFOHEADER BIH;
file.Read(&BIH,sizeof(BITMAPINFOHEADER));
nWidth = BIH.biWidth; //图像的宽度
nHeight = BIH.biHeight; //图像的高度
nColorBits = BIH.biBitCount; //图像的颜色数
nByteWidth = (nWidth*nColorBits+31)/32*4; //图像的扫描宽度
nColor = (nColorBits>8) ? 0 : (1<<nColorBits); //调色板中的颜色数
RGBQUAD *pColorTable;//颜色表指针
if(nColorBits==8)
{
//申请颜色表所需要的空间,读颜色表进内存
pColorTable=new RGBQUAD[256];
file.Read(pColorTable,sizeof(RGBQUAD)*256);
}
//申请位图数据所需要的空间,读位图数据进内存
lpBits=new BYTE[nByteWidth * nHeight];
file.Read(lpBits,nByteWidth * nHeight);
file.Close();
}
在此调用上面的函数
void CBmpDlg::OnClickedButtonJisuan()
{
// TODO: 在此添加控件通知处理程序代码
CMyBmpMatch bmpmatch;
BYTE *left_lpBits;
bmpmatch.OpenFile(m_left_bmp_edit,left_lpBits);
bmpmatch.SaveFile(m_left_bmp_edit,left_lpBits);
}
问题好多,我想问问,能不能将读进来的数据放在实参所在的指针中。在savefile中调用它