VC6.0下bmp位图的读取与显示

VC6.0下bmp位图的读取与显示

ID:38583374

大小:155.50 KB

页数:18页

时间:2019-06-15

VC6.0下bmp位图的读取与显示_第1页
VC6.0下bmp位图的读取与显示_第2页
VC6.0下bmp位图的读取与显示_第3页
VC6.0下bmp位图的读取与显示_第4页
VC6.0下bmp位图的读取与显示_第5页
资源描述:

《VC6.0下bmp位图的读取与显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一.实验目的:了解数字图像的存储格式,熟练运用某种编程工具语言提供的图象操作方法。二.实验内容:1.认识数字图象2.在VC6.0环境下,生成MFC应用程序框架。3.在已生成的应用程序中,加BMP位图读取与显示的代码,从已有文件中读取bmp格式文件并在视图中显示。三.实验原理及步骤:(一)基本知识:BMP位图文件格式BMP位图文件中主要由4部分内容组成:1、文件头BITMAPFILEHEADER为一STRUCTURE:typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件类型,必须为“BM”或0x424dDWO

2、RDbfSize;//文件大小WORDbfReserved1;//保留WORDbfReserved2;//保留DWORDbfOffBits;//从文件头到实际位图数据的偏移字节数}BITMAPFILEHEADER,FAR*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;2、位图信息头BITMAPINFOHEADER,定义如下:typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//structuresizeLONGbiWidth;//imagewidthLONGbiHeight;//i

3、mageheightWORDbiPlanes;//valueis1WORDbiBitCount;//colorbitsDWORDbiCompression;//compressionornotDWORDbiSizeImage;//Imagesize=width*height(其中width必须为4的倍数。LONGbiXPelsPerMeter;//LONGbiYPelsPerMeter;DWORDbiClrUsed;//DWORDbiClrImportant;}BITMAPINFOHEADER,FAR*LPBITMAPINFOHEADER,*PBIT

4、MAPINFOHEADER;1、调色板typedefstructtagRGBQUAD{BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;用于存放图像的颜色。1、图像的实际数据。对于2色图,用1位表示像素的值。对于16色图,用4位表示像素的值。对于256色图,一个字节刚好表示1个像素。对于用到调色板的位图,图像数据就是该像素颜色在调色板中索引值,对于真彩色,不用调色板,三个字节的数据分别代表图像的B、G、R。(二)实验过程:1、打开VC++界面,工程中选择MFCAppWizard(

5、exe),并在projectname输入dip,选择存放project的位置。2、选择ok,进入下一步。选择singledocument,并在最后CdipView类的基类中选择CscrollView,使应用程序视图具有滚动条。3、在生成的工程中选择CdipView,对class视图进行操作,添加成员变量跟成员函数到相应现在的dipview下intm_x;HBITMAPm_Bmp;LPVOIDm_ColorList;LPBYTEm_Image;LPBITMAPINFOHEADERm_DibHead;enumallocate{None,crtalloca

6、te,heapallocate};allocatem_nBmpallocate;allocatem_nImageallocate;DWORDm_ImageSize;intm_nPalette;HANDLEm_hFile;HANDLEm_hMap;LPVOIDm_lpvFile;HPALETTEm_hPalette;HGLOBALm_hGlob;利用ClassWizard向CdipView类中加入如下成员函数。voidSetPaletteSize(intnBitCount);//设置调色板大小voidClear();//清除BOOLReadFile(C

7、File*pFile);//读取数据到内存BOOLSetPalette();//当前位图颜色数大于256设置调色板BOOLGetPalette();//创建颜色数不大于256的调色板BOOLDibToDC(CDC*pDC,CSizesize);显示位图BOOLMemToDib(LPVOIDlmem);//得到内存中位图象素位置CSizeGetDibSize();//返回位图尺寸1、设计一个名为IDB_BITMAP1的位图在resourc下单击右键,选择插入,单击Bitmap,选择新建,然后自己新建一个位图,保存。2、修改OnDraw和OnInitia

8、lUpdate()函数设置滚动条的初始化图形和现实图像。1、打开Menu资源,双击主菜单,打开菜单资源编辑器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。