怎样打开一幅图像.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
详解用VC实现bmp位图的打开 2008-04-24 16:34 详解用VC实现bmp位图的打开 我最近在学VC++数字图像处理,作为一个初学者,万里长征的第一步当然是打开一幅图像,这几天一直在看怎么实现这一功能,虽说简单,但是如果这一步不能做到,那么下面也就无法进行了,所以我总结了一下这个过程,写出来供大家参考。也希望大家多多批评啊。 这里我就不想介绍关于位图的理论内容了,只是写一下实现的部分。 0.准备工作 创建一个SDI,工程名Test,“隐藏工具栏”和“打印和打印预览”取消了,不用那么复杂,简单点就行 1.创建菜单 创建两个菜单: Caption: 打开?????? ID: ID_FILE_OPEN Caption: 显示原图?? 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

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档