欢迎来到天天文库
浏览记录
ID:52957151
大小:122.03 KB
页数:3页
时间:2020-04-03
《BMP文件格式图解.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BMP文件格式图解BMP格式简单的说就是「FileHeader+InfoHeader+(optionalpalette)+RawData」,不过「FileHeader+InfoHeader+RawData」比较多,故以此格式为例。【FILEHEADER实例图解】14bytestypedefstruct{/*type:Magicidentifier,一般为BM(0x42,0x4d)*/unsignedshortinttype;unsignedintsize;/*Filesizeinbytes,全部的档案大小*/unsignedshortintreserved1,reserved2;/*保留位*/
2、unsignedintoffset;/*Offsettoimagedata,bytes*/}FILEHEADER;1.type:2bytes,一般都是'B'(0x42)、'M'(0x4D)2.size:4bytes,记录该BMP档的大小,0x436=1078bytes3.reserved1:保留位,2bytes4.reserved2:保留位,2bytes5.offset:4bytes,0x36=54bytes【INFOHEADER实例图解】40bytestypedefstruct{unsignedintsize;/*InfoHeadersizeinbytes*/intwidth,height;
3、/*Widthandheightofimage*/unsignedshortintplanes;/*Numberofcolourplanes*/unsignedshortintbits;/*Bitsperpixel*/unsignedintcompression;/*Compressiontype*/unsignedintimagesize;/*Imagesizeinbytes*/intxresolution,yresolution;/*Pixelspermeter*/unsignedintncolours;/*Numberofcolours*/unsignedintimportantcolo
4、urs;/*Importantcolours*/}INFOHEADER;1.size:4bytes,0x28=40bytes,表示InfoHeader的大长度总共40bytes2.width:4bytes,0x10=16,图像宽度为16pixel3.height:4bytes,0x10=16,图像高度为16pixel4.planes:2bytes,0x01=1,位元面数为15.bits:2bytes,0x20=32,每個pixel需要32bits6.compression:4bytes,0代表不压缩7.imagesize:4bytes,0x400=1024bytes,点阵图资料大小为1024b
5、ytes8.xresolution:4bytes,水平解析度9.yresolution:4bytes,垂直解析度10.ncolours:4bytes,点阵图使用的调色板颜色数11.importantcolours:4bytes,重要的颜色数【RAWDATA实例图解】刚刚的FileHeader共14bytes,InfoHeader为40bytes,「imagesize」=1024bytes,所以「14+40+1024=1078」,即等于FileHeader中「size」的大小。下面我只提取部分的资料,反正全部的档案,減去Header档54位元组,剩下的就是点阵图的资料。在InfoHeader中的
6、「bits」为32bits,故四个位元组一组,若24bits,则三个位元组一组,例子中的长宽各为16,以「Z」字型来看,一列则为16组,即16X4=64bytes。注意的是,图中是以A、B、C~…的读取顺序来解说,但实际上程序所读取到的通常回是反过来的,即…~C、B、A。另外,下图是以「BGRA」排列。
此文档下载收益归作者所有