如何读取一幅bmp图像,用mfc

[复制链接]
查看11 | 回复2 | 2011-9-19 01:17:35 | 显示全部楼层 |阅读模式
我用类向导向cview类中的open函数添加代码,怎么不行呀?还需什么步骤吗?文件头什么的就不用说了,只需要在一个文档中打开一个bmp图像,谢谢了。最好能把每一步的操作写一下...
回复

使用道具 举报

千问 | 2011-9-19 01:17:35 | 显示全部楼层
BOOLCDib::LoadDibFile(CStringlpszDibFile){ASSERT(m_dwLength==0L);TRY{CFilefile(lpszDibFile,CFile::modeRead|CFile::shareDenyNone);if(!ReadDib(//str=\":打开文件错误!\\n文件打开失败!\";//AfxMessageBox(str);returnFALSE;}}CATCH(CException,e){//CStringstr=lpszDibFile;//str=\":装载文件出错!\";//AfxMessageBox(str);returnFALSE;}END_CATCHreturnTRUE;}
回复

使用道具 举报

千问 | 2011-9-19 01:17:35 | 显示全部楼层
CFilefile;CStringcs;cs=dlg.GetPathName();file.Open(cs,CFile::modeRead);Bitmapfileheader=(BITMAPFILEHEADER*)newBYTE[sizeof(BITMAPFILEHEADER)];file.Read(Bitmapfileheader,sizeof(BITMAPFILEHEADER));if((Bitmapfileheader-bfType)!=0x4d42){MessageBox(\"Notbmp\");return;}number=(Bitmapfileheader-bfOffBits)-sizeof(BITMAPFILEHEADER);Bitmapinfo=(BITMAPINFO*)newBYTE[number];file.Read(Bitmapinfo,number);number_image=(Bitmapinfo-bmiHeader.biWidth)*(Bitmapinfo-bmiHeader.biHeight)*4;image=newBYTE[number_image];file.Read(image,number_image);Width=Bitmapinfo-bmiHeader.biWidth;Height=Bitmapinfo-bmiHeader.biHeight;bOpenImage=TRUE;Invalidate();file.Close();OnPaint里else{if(bOpenImage){CPaintDCdc(this);::StretchDIBits((HDC)dc,(800-Width)/2,(600-Height)/2,Width,Height,0,0,Width,Height,image,Bitmapinfo,DIB_RGB_COLORS,SRCCOPY);}CDialog::OnPaint();}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行