欢迎来到天天文库
浏览记录
ID:53693993
大小:231.02 KB
页数:16页
时间:2020-04-06
《实验一、VC6.0下bmp位图的读取与显示.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一、VC6.0下bmp位图的读取与显示一、实验目的:1、掌握windowsBMP格式位图文件的基本格式。2、会使用VC++读取图像数据并显示。二、实验内容:1、在VC6.0环境下,生成MFC应用程序框架。2、在已生成的应用程序中,加BMP位图读取与显示的代码,从已有文件中读取bmp格式文件并在视图中显示。三、实验原理及步骤:基本知识:BMP位图文件格式BMP位图文件中主要由4部分内容组成:1、文件头BITMAPFILEHEADER为一STRUCTURE:typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件类型,必须为“BM”或0
2、x424dDWORDbfSize;//文件大小WORDbfReserved1;//保留WORDbfReserved2;//保留DWORDbfOffBits;//从文件头到实际位图数据的偏移字节数}BITMAPFILEHEADER,FAR*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;2、位图信息头BITMAPINFOHEADER,定义如下:typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//structuresizeLONGbiWidth;//imagewidthLONGbiHeight;//imageh
3、eightWORDbiPlanes;//valueis1WORDbiBitCount;//colorbitsDWORDbiCompression;//compressionornotDWORDbiSizeImage;//Imagesize=width*height(其中width必须为4的倍数。LONGbiXPelsPerMeter;//LONGbiYPelsPerMeter;DWORDbiClrUsed;//DWORDbiClrImportant;}BITMAPINFOHEADER,FAR*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;1、调色
4、板typedefstructtagRGBQUAD{BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;用于存放图像的颜色。1、图像的实际数据。对于2色图,用1位表示像素的值。对于16色图,用4位表示像素的值。对于256色图,一个字节刚好表示1个像素。对于用到调色板的位图,图像数据就是该像素颜色在调色板中索引值,对于真彩色,不用调色板,三个字节的数据分别代表图像的B、G、R。具体实验步骤1、生成一名为zhangyunxiang的基于MFC的应用程序框架:选择file菜单new选项,在打开的窗口中选择proje
5、ct选项,选中MFCAppWizard(exe)。并在projectname输入zhangyunxiang,选择存放project的位置。如下图所示。选择OK,进入下一步。选择singledocument,如下图最后CzhangyunxiangView类的基类中选择CscrollView,使应用程序视图具有滚动条。如下图点击Finish完成生成一名为zhangyunxiang的基于MFC的应用程序框架。2、对class视图进行操作,添加成员变量跟成员函数到相应现在的zhangyunxiangview下(1)在CzhangyunxiangView.h中加入如入变量:具体步骤:单
6、击(右击)CzhangyunxiangView,在其中选中AddMenberVariable控件如下图:然后左击它,接着就会出现如下图所示的对话框在其中依次加入以下变量:public:intm_x;HBITMAPm_Bmp;LPVOIDm_ColorList;LPBYTEm_Image;LPBITMAPINFOHEADERm_DibHead;enumallocate{None,crtallocate,heapallocate};allocatem_nBmpallocate;allocatem_nImageallocate;DWORDm_ImageSize;intm_nPale
7、tte;HANDLEm_hFile;HANDLEm_hMap;LPVOIDm_lpvFile;HPALETTEm_hPalette;HGLOBALm_hGlob;(2)在CzhangyunxiangView.h中加入如入变量:具体步骤:单击(右击)CzhangyunxiangView,在其中选中AddMenberFunction控件如下图:然后左击它,接着就会出现如下图所示的对话框利用ClassWizard向CzhangyunxiangView类中加入如下成员函数。voidSetPaletteSize(
此文档下载收益归作者所有