2.mfc-bmp图片读取保存

2.mfc-bmp图片读取保存

ID:33443901

大小:93.54 KB

页数:10页

时间:2019-02-26

2.mfc-bmp图片读取保存_第1页
2.mfc-bmp图片读取保存_第2页
2.mfc-bmp图片读取保存_第3页
2.mfc-bmp图片读取保存_第4页
2.mfc-bmp图片读取保存_第5页
资源描述:

《2.mfc-bmp图片读取保存》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Eastmount制作第二课bmp图片格式解析<一>.BMP格式定义BMP文件格式是Windows操作系统推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,故称位图(bitmap),其扩展名为BMP。BMP图像文件被分为4个部分:a.位图文件头b.位图信息头c.颜色表d.位图数据Eastmount制作a.颜色表中RGBQUAD结构数据的个数有biBitCount来确定:  当biBitCount=1,4,8时,分别有2,16,256个表项;  当biBitCount=24时,没有颜色表项。  位图信息头和颜色表组成位图信息,BIT

2、MAPINFO结构定义如下:  typedefstructtagBITMAPINFO{  BITMAPINFOHEADERbmiHeader;//位图信息头  RGBQUADbmiColors[1];//颜色表  }BITMAPINFO;b.位图数据  位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:当biBitCount=1时,8个像素占1个字节;  当biBitCount=4时,2个像素占1个字节;  当biBitCount=8时,1个像素占1个字节;  当biBitCount=24时,1个像素占3

3、个字节;  Windows规定一个扫描行所占的字节数必须是  4的倍数(即以long为单位),不足的以0填充,  biSizeImage=((((bi.biWidth*bi.biBitCount)+31)&~31)/8)*bi.biHeight。Eastmount制作<二>.BMP图片在MFC工程中的定义存在2个未解问题:a.bmp结构时我定义成系统自带的结构,否则会多2个字节在图片最后为CD;b.在read中malloc只能申请4字节的空间,但fread(,m_nImage,)读入位图大小个。第一步:添加BMP信息文件头文件—新建—创建ImageStruct.h—包含B

4、MP格式的文件头部分的结构。打开ImageStruct.h并添加代码:重点注意:1.bmp结构头必须定义成BITMAPFILEHEADER_不能定义成BITMAPFILEHEADER;因为在MFC中已存在BITMAPFILEHEADER的定义,在定义成它会显示重复定义。同时自己定义的在View.h和View.cpp中注意引用#include“ImageStruct.h”。2.在后面的引用bmp结构时我定义成系统自带的结构:BITMAPFILEHEADERbfh;BITMAPINFOHEADERbih;而不是BITMAPFILEHEADER_,因为MFC中用自带的定义图片头

5、文件信息是正确的,但在位图信息块总会在文件最后多出2字节并默认为CD(0x16进制)。原因可能是自定义的图片头文件少2字节,在后面补充了2字节。(未知)/*******************************************************//*BMP位图文件包括4部分:*//*位图文件头结构BITMAPFILEHEADER*//*位图信息头结构BITMAPINFOHEADER*//*位图颜色表RGBQUAD*//*位图像素数据*//*******************************************************/Ea

6、stmount制作#ifndef_IMAGESTRUCT_#define_IMAGESTRUCT_/*14byteBMP文件头含有BMP文件的类型、大小、位图文件的保留字、位图数据距文件头的偏移量*/typedefstructT_BITMAPFILEHEADER{WORDbfType;//2byte位图文件的类型,必须为BM0x424dDWORDbfSize;//4byte位图文件的大小,以字节为单位WORDbfReserved1;//2byte位图文件保留字,必须为0WORDbfReserved2;//2byte位图文件保留字,必须为0DWORDbfOffBits;//

7、4byte位图数据距文件头的偏移量(字节)}BITMAPFILEHEADER_;/*40byteBMP位图信息头用于说明位图的尺寸等信息*/typedefstructT_BITMAPINFOHEADER{DWORDbiSize;//本结构所占用字节数LONGbiWidth;//位图的宽度,以像素为单位LONGbiHeight;//位图的高度,以像素为单位WORDbiPlanes;//目标设备的级别,必须为1WORDbiBitCount;//每个像素所需的位数,必须是1(双色)、4(16色)、8(256色)或24(真彩色)之一D

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

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

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