欢迎来到天天文库
浏览记录
ID:35198851
大小:40.50 KB
页数:3页
时间:2019-03-21
《bmp位图图像格式简介(单色)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、BMP位图图像格式简介1.文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-fileheader)、位图信息头(bitmap-informationheader)、彩色表(colortable)和定义位图的字节阵列,它具有如下所示的形式。位图文件的组成结构名称符号位图文件头(bitmap-fileheader)BITMAPFILEHEADERbmfh位图信息头(bitmap-informationheader)BITMAPINFOHEADERbmih彩色表(colortable)RGBQUADaColors[]图象数据阵
2、列字节BYTEaBitmapBits[]位图文件结构可综合在表1中。偏移量域的名称大小内容图像文件头0000h文件标识2byte两字节的内容用来识别位图的类型:‘BM’:Windows3.1x,95,NT,…‘BA’:OS/2BitmapArray‘CI’:OS/2ColorIcon‘CP’:OS/2ColorPointer‘IC’:OS/2Icon‘PT’:OS/2Pointer注:因为OS/2系统并没有被普及开,所以在编程时,你只需判断第一个标识“BM”就行。0002hFileSize1dword用字节表示的整个文件的大小0006
3、hReserved1dword保留,必须设置为0000AhBitmapDataOffset1dword从文件开始到位图数据开始之间的数据(bitmapdata)之间的偏移量图像信息头000EhBitmapHeaderSize1dword位图信息头(BitmapInfoHeader)的长度,用来描述位图的颜色、压缩方法等。下面的长度表示:28h-Windows3.1x,95,NT,…0Ch-OS/21.xF0h-OS/22.x注:在Windows95、98、2000等操作系统中,位图信息头的长度并不一定是28h,因为微软已经制定出了新的
4、BMP文件格式,其中的信息头结构变化比较大,长度加长。所以最好不要直接使用常数28h,而是应该从具体的文件中读取这个值。这样才能确保程序的兼容性。0012hWidth1dword位图的宽度,以象素为单位0016hHeight1dword位图的高度,以象素为单位001AhPlanes1word位图的位面数(注:该值将总是1)001ChBitsPerPixel1word每个象素的位数。1-单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。你可以自己定义这两种颜色)4-16色位图8-256色位图16-16bit高彩色位图24-24bit
5、真彩色位图32-32bit增强型真彩色位图001EhCompression1dword压缩说明:0-不压缩(使用BI_RGB表示)1-RLE8-使用8位RLE压缩方式(用BI_RLE8表示)2-RLE4-使用4位RLE压缩方式(用BI_RLE4表示)3-Bitfields-位域存放方式(用BI_BITFIELDS表示)0022hBitmapDataSize1dword用字节数表示的位图数据的大小。该数必须是4的倍数0026hHResolution1dword用象素/米表示的水平分辨率002AhVResolution1dword用象素/
6、米表示的垂直分辨率002EhColors1dword位图使用的颜色数。如8-比特/象素表示为100h或者2560032hImportant1dword指定重要的颜色数。当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要调色板数据根据BMP版本的不同而不同PaletteN*4byte调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图象数据根据BMP版本及调色板尺寸的不同而不同BitmapDataxxxbytes该域的大
7、小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。2四个部分在位图图像数据中的相应位置,(位置偏移均以位图数据开始处为基准)起始位置偏移<=各部分数据具体存放位置<结束位置偏移第一部分,图像头:起始位置偏移0,长度:0x0EH(2byte+3*dword=14)结束位置偏移:起始位置偏移+长度第二部分,图像信息头:起始位置偏移:上一部分结束位置偏移长度:从0x0EH处读取到的dword的数据值结束位置偏移:起始位置偏移+
8、长度第三部分,调色板:起始位置偏移:上一部分结束位置偏移长度:从0x0AH处读取到的dword的数据值-起始位置偏移结束位置偏移:起始位置偏移+长度第四部分,位图数据:起始位置偏移:上一部分结束位置偏移长度:从0x22H
此文档下载收益归作者所有