0MFC读取并显示图片和彩色转灰度By侯海艳(UCAS)关于MFC读取BMP图片,相信对于很多初学者都是一头雾水,找不着头绪
那么就让我浅浅地说一说到底怎么样读取并显示BMP图片吧
因为我也是初学,摸索学习了四五天,由于有些MFC基础,因此大概理清了MFC读取图片的机理
说的不对请提出宝贵建议,高手请绕道
C++的学习难就难在指针上面,我们必须很好地了解数据的存储方式和指针的基本知识
一般来说,数据存储在内存中是以内存块的形式存储的,即给变量分配一定大小的空间,这个空间就像书架一样,里面装满了一本一本的书,每本书就对应着一个数据单元
我们定义一个指针,指向这个内存块,指针的位置就在内存块的开头,即数据的第一个元素
当我们要获取后面的元素的时候就要移动指针获取
下面会具体说
MFC读取BMP图片的形式有两种(这两种仅仅是我实践过的,也许还有别的方法):第一种就是根据BMP文件的存储方式,按照这种方式自己写代码读取;第二种可以利用两个头文件DIBAPI
H和DIBAPI
CPP,这两个文件定义了读取和获取DIB文件的各种方法,网上可以获取这两个文件
DIB(Device-IndependentBitMap)就是数据无关位图,其实就是BMP文件的一种,这里不多做解释
从新建MFC文档开始新建MFC文档的时候,可以选择多文档类型,一般选择默认,但有一点需要注意,当新建这只到了第六步的时候,C*View类的BaseClass要选择CScrollView,而不是默认的CView
如下图:Teeee是我随便命名的工程名(旋转了90度)这样打开文档就可以看到上图中有许多文件,我们所要编辑的主要是Doc
cpp、View
cpp和HeaderFiles里面的Doc
cpp里面有OnOpenDocument()函数,这个是执行打开文件时响应的函数
读取文件可以在