一.实验目的: 掌握windows BMP 格式位图文件的基本格式。会使用VC++读取图像数据并显示。 二.实验内容: 1.在VC6.0 环境下,生成MFC 应用程序框架。 2.在已生成的应用程序中,加BMP 位图读取与显示的代码,从已有文件中读取bmp 格式文件并在视图中显示。 三.实验原理及步骤: 基本知识:BMP 位图文件格式 BMP 位图文件中主要由4 部分内容组成: 1、 文件头BITMAPFILEHEADER 为一STRUCTURE: typedef struct tagBITMAPFILEHEADER { WORD bfType;//文件类型,必须为“BM”或0x424d DWORD bfSize;//文件大小 WORD bfReserved1;//保留 WORD bfReserved2;//保留 DWORD bfOffBits;//从文件头到实际位图数据的偏移字节数 } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; 2、 位图信息头BITMAPINFOHEADER,定义如下: typedef struct tagBITMAPINFOHEADER{ DWORD biSize;//structure size LONG biWidth;//image width LONG biHeight;//image height WORD biPlanes;//value is 1 WORD biBitCount;//color bits DWORD biCompression;//compression or not DWORD biSizeImage;//Image size=width*height( 其中width必须为4的倍数。 LONG biXPelsPerMeter;// LONG biYPelsPerMeter; DWORD biClrUsed;// DWORD biClrImportant; } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; 3、 调色板 typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD;用于存放图像的颜色。 4、图像的实际数据。对于 2 色图,用1 位表示像素的值。对于 16 色图,用4 位表示像素的值。对于 256 色图,一个字节刚好表示1 个像素。对于用到调色板的位图,图像数据就是该像素颜色在调色板中索引值,对于真彩色,不用调色板,三个字节的数据分别代表图像的B、G、R。 1、 生成一名为dip 的基于 MFC 的应用程序框架:选择 file 菜单 new 选项,在打开的窗口中选择 project 选项,选中MFC AppWizard(exe)。并在project name 输入 dip ,选择存放project 的位置。如下图所示。 选择ok,进入下一步。选择single document,并在最后CdipView 类的基类中选择CscrollView,使应用程序视图具有滚动条。具体过程可参阅VC++6.0 上机指导。 2、 在应用程序中加入具体的函...