- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
详解用VC实现bmp位图的打开
2008-04-24 16:34
详解用VC实现bmp位图的打开
我最近在学VC++数字图像处理,作为一个初学者,万里长征的第一步当然是打开一幅图像,这几天一直在看怎么实现这一功能,虽说简单,但是如果这一步不能做到,那么下面也就无法进行了,所以我总结了一下这个过程,写出来供大家参考。也希望大家多多批评啊。这里我就不想介绍关于位图的理论内容了,只是写一下实现的部分。0.准备工作创建一个SDI,工程名Test,“隐藏工具栏”和“打印和打印预览”取消了,不用那么复杂,简单点就行
1.创建菜单创建两个菜单:Caption: 打开?????? ID: ID_FILE_OPENCaption: 显示原图?? ID: IDM_YUANTU
2.对打开菜单进行响应右键打开菜单,建立类向导,在CTestDoc类中,进行COMMAND响应,生成OnFileOpen函数,代码如下:void CTestDoc::OnFileOpen() {??? // TODO: Add your command handler code here??? CFileDialog fileDlg(TRUE);//创建一个CfileDialog类对象fileDlg,第一个参数TRUE为打开对话框,若为FALSE,则为另存为??? fileDlg.m_ofn.lpstrTitle=图片打开对话框;//设置打开对话框的标题??? fileDlg.m_ofn.lpstrFilter=BMP Files(*.bmp)\0*.bmp\0\0;//设置打开的文件类型??? if(IDOK==fileDlg.DoModal ())//这个语句有两层意义,第一是dlg.DoModal()作用是弹出CPortDlg对话框,第二层是dlg.DoModal()==IDOK是你点击了对话框上的OK按钮就是说你同时做了上述两件事时就执行if语句后面的程序。??? filename.Format (%s,fileDlg.GetPathName());//将完整路径通过Format函数以字符串类型存入filename中★CDib.LoadFile(filename); //注意这里CDib不是类,而是CDib类的对象,对象名称也为CDib,千万不要弄混,类不能直接调用成员函数,而类的对象则可以调用}其中,注意在CTestDoc类中,添加一个变量filename,Cstring类型,该变量作用是保存所指定的文件的文件完整路径。注意最后一行★。这一句代码用来实现文件的读取(不含显示)。这里用到了CDib类的对象CDib,因此需要在CTestDoc.h中添加CDib类的头文件#include “Dib.h”,并且在CTestDoc类中添加这个对象,类型CDib,变量名称CDib。然后执行CDib类的成员函数LoadFile来读取文件。
3.CDib类的操作这是一个处理DIB位图的专用类,封装了一些相关的函数与变量,基类选为CObject类。在Dib.h中做如下声明:class CDib : public CObject {public:??? RGBQUAD* m_pRGB;??? BYTE* m_pData;??? UINT m_numberOfColors;BOOL m_valid;??? BITMAPFILEHEADER bitmapFileHeader;//定义了一个文件头结构体的对象??? BITMAPINFOHEADER* m_pBitmapInfoHeader;//定义了一个指向信息头的结构体指针??? BITMAPINFO* m_pBitmapInfo;//定义了一个结构体指针,BITMAPINFO是一个包含有信息头,和调色板的结构体。??? BYTE* pDib;DWORD size;char m_fileName[256];//定义字符数组用来存放文件路径public:UINT GetNumberOfColors();UINT GetHeight();UINT GetWidth();DWORD GetSize();void LoadFile(const char* dibFileName);CDib();virtual ~CDib();};CDib.cpp代码如下:CDib::CDib(){??? size=0;//构造函数初始化size}
CDib::~CDib(){GlobalFreePtr(m_pBitmapInfo); //详见说明(1)}void CDib::LoadFile(const char* dibFileName
您可能关注的文档
- 必修一的知识点复习完成句子.doc
- 必修一第一章节走进细胞知识点总结.doc
- 必修一至必修五古之今异义词教师.doc
- 必修三第一章节区域地理环境与人类活动知识点.doc
- 必看8大货代知识.doc
- 必须知道的2015年度电商行业的十个风向标.doc
- 2013年度第10周北京房地产市场周报.ppt
- 志宽月饼销售推广的方案.doc
- 志愿填报相关的知识全收录.doc
- 2013年度职称晋级现场述职王沙沙.ppt
- 未来教育与办公教育类汇报工具的创新发展路径预测报告.docx
- 大学生迎新晚会活动策划方案.pdf
- 未来教育以科技为驱动的教育模式探索.docx
- 难点详解浙教版七年级下册数学第五章分式专项测评试题(详解版).docx
- 难点解析浙教版七年级下册数学第五章分式综合练习试题(含详细解析).docx
- 难点解析浙教版七年级下册数学第五章分式综合测试试题(解析卷).docx
- 难点解析浙教版七年级下册数学第五章分式综合测试练习题(解析版).docx
- 难点解析浙教版七年级下册第四章因式分解专项练习试题(含详细解析).docx
- 难点解析浙教版七年级下册数学第五章分式综合测评试卷(含答案详解).docx
- 未来教育行业的数字化营销策略.docx
文档评论(0)