文档介绍:详解用 VC实现 bmp 位图的打开 2008-04-24 16:34 详解用 VC 实现 bmp 位图的打开我最近在学 VC++ 数字图像处理,作为一个初学者,万里长征的第一步当然是打开一幅图像,这几天一直在看怎么实现这一功能,虽说简单,但是如果这一步不能做到,那么下面也就无法进行了,所以我总结了一下这个过程,写出来供大家参考。也希望大家多多批评啊。这里我就不想介绍关于位图的理论内容了,只是写一下实现的部分。 SDI ,工程名 Test ,“隐藏工具栏”和“打印和打印预览”取消了,不用那么复杂,简单点就行 : Caption: 打开 ID: ID_FILE_OPEN Caption: 显示原图 ID: IDM_YUANTU ,建立类向导,在 CTestDoc 类中,MAND 响应,生成 OnFileOpe n 函数,代码如下: void CTestDoc::OnFileOpen() {//TODO: Add mand handler code here CFileDialog fileDlg(TRUE);// 创建一个 CfileDialog 类对象 fileDlg ,第一个参数 TRUE 为打开对话框,若为 FALSE ,则为另存为 =" 图片打开对话框";// 设置打开对话框的标题 ="BMP Files(*.bmp)\0*.bmp\0\0";// 设置打开的文件类型 if(IDOK== ())// 这个语句有两层意义,第一是 () 作用是弹出 CPortDlg 对话框,第二层是 ()==IDOK 是你点击了对话框上的 OK 按钮就是说你同时做了上述两件事时就执行 if语句后面的程序。 ("%s",());// 将完整路径通过 Format 函数以字符串类型存入 filename 中★(filename); //注意这里 CDib 不是类,而是 CDib 类的对象,对象名称也为 CDib ,千万不要弄混,类不能直接调用成员函数,而类的对象则可以调用}其中,注意在 CTestDoc 类中,添加一个变量 filename ,Cstring 类型,该变量作用是保存所指定的文件的文件完整路径。注意最后一行★。这一句代码用来实现文件的读取(不含显示)。这里用到了 CDib 类的对象 CDib ,因此需要在 中添加 CDib 类的头文件#include “ ”,并且在 CTestDoc 类中添加这个对象,类型 CDib, 变量名称 CDib 。然后执行 CDib 类的成员函数 LoadFile 来读取文件。 类的操作这是一个处理 DIB 位图的专用类,封装了一些相关的函数与变量,基类选为 CObject 类。 中做如下声明: class CDib :public CObject {public: RGBQUAD* m_pRGB; BYTE* m_pData;