介绍用DIB类实现显示BMP图片

介绍用DIB类实现显示BMP图片

ID:38587432

大小:58.50 KB

页数:7页

时间:2019-06-15

介绍用DIB类实现显示BMP图片_第1页
介绍用DIB类实现显示BMP图片_第2页
介绍用DIB类实现显示BMP图片_第3页
介绍用DIB类实现显示BMP图片_第4页
介绍用DIB类实现显示BMP图片_第5页
资源描述:

《介绍用DIB类实现显示BMP图片》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、ImageProcessingDoc.h文件首先在ImageProcessingDoc.h文件头部添加一下#include语句:#include"DibImage.h"在ImageProcessingDoc.h文件中添加:public:HDIBGetHDIB()const{returnm_hDIB;}CPalette*GetDocPalette()const{returnm_palDIB;}CSizeGetDocSize()const{returnm_sizeDoc;}CDibImage*GetDibImage()const{returnm_pDibImage;}添加InitDIBD

2、ata()voidInitDIBData();COLORREFm_refColorBKG;添加protected:CDibImage*m_pDibImage;HDIBm_hDIB;CPalette*m_palDIB;CSizem_sizeDoc;voidCImageProcessingDoc::InitDIBData(){//初始化DIB对象if(m_palDIB!=NULL){deletem_palDIB;m_palDIB=NULL;}if(m_hDIB==NULL){return;}LPSTRlpDIB=(LPSTR)::GlobalLock((HGLOBAL)m_hDIB);//判

3、断图像是否过大if(m_pDibImage->DIBWidth(lpDIB)>INT_MAX

4、

5、m_pDibImage->DIBHeight(lpDIB)>INT_MAX){::GlobalUnlock((HGLOBAL)m_hDIB);::GlobalFree((HGLOBAL)m_hDIB);m_hDIB=NULL;CStringstrMsg;strMsg="BMP图像太大!";MessageBox(NULL,strMsg,"系统提示",MB_ICONINFORMATION

6、MB_OK);return;}m_sizeDoc=CSize((int)m_pDibImage->DIBWid

7、th(lpDIB),(int)m_pDibImage->DIBHeight(lpDIB));::GlobalUnlock((HGLOBAL)m_hDIB);//创建新调色板m_palDIB=newCPalette;if(m_palDIB==NULL){::GlobalFree((HGLOBAL)m_hDIB);m_hDIB=NULL;return;}if(m_pDibImage->CreateDIBPalette(m_hDIB,m_palDIB)==NULL){deletem_palDIB;m_palDIB=NULL;return;}}BOOLCImageProcessingDoc::O

8、nOpenDocument(LPCTSTRlpszPathName){CFilefile;CFileExceptionfe;if(!file.Open(lpszPathName,CFile::modeRead

9、CFile::shareDenyWrite,&fe)){ReportSaveLoadException(lpszPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);returnFALSE;}DeleteContents();BeginWaitCursor();if(m_pDibImage!=NULL){deletem_pDibImage;m

10、_pDibImage=NULL;}m_pDibImage=newCDibImage;TRY{m_hDIB=m_pDibImage->ReadDIBFile(file);}CATCH(CFileException,eLoad){file.Abort();EndWaitCursor();ReportSaveLoadException(lpszPathName,eLoad,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);m_hDIB=NULL;if(m_pDibImage!=NULL){deletem_pDibImage;m_pDibImage=NULL;}returnFA

11、LSE;}END_CATCHInitDIBData();EndWaitCursor();//判断读取文件是否成功if(m_hDIB==NULL){CStringstrMsg;strMsg="读取图像时出错!可能是不支持该类型的图像文件!";MessageBox(NULL,strMsg,"系统提示",MB_ICONINFORMATION

12、MB_OK);if(m_pDibImage!=NULL){deletem_pDibImage;m_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。