下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.2 BMP文件格式BMP文件格式是Microsoft Windows下最常见的图像文件格式之一,它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的像素值在文件中的存放顺序为从左到右,从下到上 ,也就是说,在BMP文件中首先存放的是图像的最后一行像素,最后才存储图像的第一行像素,但对与同一行的像素,则是按照先左边后右边的的顺序存储的;另外一个需要关注的细节是:文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为4的倍数,则正常存储,否则,需要
2、在后端补0,凑足4的倍数。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像 HYPERLINK /view/37.htm t _blank 软件都支持BMP图像格式。5.2.1典型的BMP HYPERLINK /view/42116.htm t _blank 图像文件由四部分组成:1、位图头文件数据结构主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;2、 HYPERLINK /view/56073.htm t _blank 位图信息数据结构包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜
3、色数等信息;3、 HYPERLINK /view/1120949.htm t _blank 调色板包含图像所用到的颜色表,显示图像时需用到这个 颜色表来生成调色板,但如果图像为真彩色,既图像的每个像素用24个比特来表示,文件中就没有这一块信息,也就不需要操作调色板。4、位图数据记录了位图的每一个像素值或该对应像素的颜色表的索引值,图像记录顺序是在扫描行内是从左到右, 扫描行之间是从下到上。这种格式我们又称为 Bottom_Up位图,当然与之相对的还有Up_Down形式的位图,它的记录顺序是从上到下的,对于这种形式的位图,也不存在压缩形式。5.2.2 BMP文件结构位图文件(bitmap fil
4、e, BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。 Windows3.0以后的BMP格式与显示设备无关,因此把这种BMP格式称为设备无关位图(Device Independentbit Bitmap , DIB)格式, Windows能够在任何类型的显示设备上显示BMP位图。BMP位图默认的文件扩展名是bmp。1、文件结构位图文件可看成由4个部分组成:位图文件头(Bitmap-File)、位图信息头(Bitmap-Information Header)、彩色表(Color Table)和定义位图的字节阵列,它们的名称和符号如下
5、表1所示:表1 BMP图像文件组成部分的名称和符号位图文件的组成结构名称符 号位图文件头BITMAPEILEHEADERbmfh位图信息头BITMAPINFOHEADERbmib彩色表RGBQUADaColors 图像数据阵列字节BITMAPDATAaBitmapBits 2、位图文件结构可综合在下表中:表2 位图文件结构偏移量名称大小(byte)内容图像文件头000h标识符2两字节的内容用来识别位的类型:BMWindows 3.x,9x,NT,CI、CP、IC、PTOS/2002hFile Size4用字节表示的整个文件的大小006hReserved4保留,设置为0000AhBitmap D
6、ata Offset4从文件开始到位图数据开始之间的数据(Bitmap Data)的偏移量图像信息头000EhBitmap Header Size4位图信息头的长度,用来描述位图的颜色和压缩方法等。下面的长度表示:28 hWindows3.X ,9X,NT0Ch/F0hOS/2 1.x0012hWidth4位图的宽度,以像素为单位0016hHeight4位图的高度,以像素为单位001AhPlanes2位图的位面数001ChBites Per Pixel2每个像素的位数1单色位图;416色图;8256色位图1616bit 高彩位图;2424位真彩位图001EhCompression4压缩说明:0
7、:无压缩;1RLE 8-bit/pixel(BI_RLE4)2RLE 4-bit/pixel(BIRLE8)3Bitfields(BI_BITFIELDS)0022hBitmap Data Size4用字节数表示的位图数据的大小。该数必须是4的倍数。0026hHresolution4用pixel/m表示的水平分辨率002AhVresolution4用pixel/m表示的水平分辨率002EhColors4位图使用的颜色数。如8bit/pixel表示为100h或者2560032hImportant Colors4指定重要的颜色数。当该域的值等于颜色数时,表示所有颜色都一样重要0036hPalett
8、eN*4调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于表示RGB中的蓝色分量1字节用于表示RGB中的绿色分量1字节用于表示RGB中的红色分量1字节用于表示填充符(设置为0)0436hBitmap DataX该域的大小取决于压缩方法它包含所有的位图数据字节,这些数据字节实际就是彩色调节器色板的索引号3、结构详解(1)位图文件头:它包含有关于文件类型、文件大小和存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMSPFILEHEADER结构体来定义。位图文件头包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段。BMP文件头数据结
9、构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下:typedef struct tagBITMAPFILEHEADERWORD bfType; / 位图文件的类型,必须为BMDWORD bfSize; / 位图文件的大小,以字节为单位 WORD bfReserved1; / 位图文件保留字,必须为0WORD bfReserved2; / 位图文件保留字,必须为0DWORD bfOffBits; / 位图数据的起始位置,以相对于位图/ 每个像素所需的位数,必须是 1( 双色), 4(16 色),8(256 色)或24(真彩色)/ 文件头的偏移量表示,以字节为单位 BITMA
10、PFILEHEADER; /该结构占据14个字节。(2)位图信息头:位图信息用BITMAPINFO结构体来定义,位图信息头包含了位图信息头的大小、图像的宽高、图像的色深、压缩说明图像数据的大小和其他一些参数。BMP位图信息头数据用于说明位图的尺寸等信息。typedef struct tagBITMAPINFOHEADERDWORD biSize; / 本结构所占用字节数LONG biWidth; / 位图的宽度,以像素为单位LONG biHeight; / 位图的高度,以像素为单位WORD biPlanes; / 目标设备的级别,必须为1WORD biBitCount / 每个像素所需的位数,
11、必须是1(双色) (黑白二色图),/ 4(16色),8(256色)或24(真彩色)之一 (新的.bmp格式支持32位色)DWORD biCompression; / 位图压缩类型,必须是 0(不压缩),/ 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一DWORD biSizeImage; / 位图的大小,以字节为单位LONG biXPelsPerMeter; / 位图水平分辨率,每米像素数LONG biYPelsPerMeter; / 位图垂直分辨率,每米像素数DWORD biClrUsed; / 位图实际使用的颜色表中的颜色数DWORD biClrImportant; / 位
12、图显示过程中重要的颜色数 BITMAPINFOHEADER; /该结构占据40个字节它由位图信息头和彩色表组成,前者用BITMAPINFOHEADER结构体定义,后者用RGBQUAD结构体定义。1)彩色表的定位:应用程序进行彩色表的定位时,可使用存储在biSize成员中的信息来查找在BITMAPINFO结构体中的彩色表。2)biBitCount:biBitCount=1表示位图最多有两种颜色,黑色和白色。图像数据阵列中的每一位表示一个pixel:biBiCount=4表示位图最多有16种颜色。每个像素用场bit表示,交用这4bit作为彩色表的表项来查找该像素的颜色。3)ClrUsed:BITM
13、APINFOHEADER结构中的成员ClrUsed指定实际使用的颜色数目。4)8bit/pixel的图像数据压缩:BI_RLE8 8bit/pixel的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用。编码方式 由此及彼个字节组成,第一个字节指定使用相同颜色的像素数目,第二个字节指字使用的颜色索引。此外,这个字节对中的第一个字节可设置为0,联合使用第二个字节的值表示:第二个字节的值为0 行的结束第二个字节的值为1 图像结束第二个字节的值为2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量绝对方式 第一个字节设置为0,而第二个字
14、节设置为03h0FFh之间的一个值。在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个像素的颜色索引。5)每个像素为4位的图像数据压缩:BI_RLE4 每个像素为4位的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一幅图中的任何地方使用。编码方式 由2个字节组成,第一个字节指定像素数目,第二个字节包含两种颜色索引。绝对方式 这个字节对中的第一个字节设置为0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低4位中,一个颜色索引对应一个像素。BI_RLE4也同样联合使用第二个字节中的值表示:第二个字节的值
15、为0 行的结束第二个字节的值为1 图像结束第二个字节的值为2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量(3)彩色表:包含的元素与位图所具有的颜色数相同,像素的颜色用RGBQUAD结构来定义。彩色表中的颜色按颜色的重要性排序,这可辅助显示驱动程序为不能显示足够多颜色数的显示设备显示彩色图像。颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:typedef struct tagRGBQUAD BYTE rgbBlue; / 蓝色的亮度(值范围为0-255)BYTE rgbGreen; / 绿色的亮
16、度(值范围为0-255)BYTE rgbRed; / 红色的亮度(值范围为 0-255)BYTE rgbReserved; / 保留,必须为0 RGBQUAD;彩色表/调色板(color table)是单色、16色和256色图像文件所特有的,相对应的调色板大小是2、16和256,调色板以4字节为单位,每4个字节存放一个颜色值,图像的数据是指向调色板的索引。可以将调色板想象成一个数组,每个数组元素的大小为4字节,假设有一256色的BMP图像的调色板数据为:调色板0=黑、调色板1=白、调色板2=红、调色板3=蓝调色板255=黄图像数据01 00 02 FF表示调用调色板1、调色板0、调色板2和调色板255中的数据来显示图像颜色。每个调色板的大小为4字节,按蓝、绿、红存储一个颜色值。(4)位图数据:紧跟在彩色表之后的是图像数据字节阵列。图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。位图的一个像 素值所占的字节数:当biBitCount=1时,8个像素占1个字节;当biBitCount=4时,2个像素占1个字节;当biBitCount=8 时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节,此时图像为真彩色图像。当图像不是为真彩色时,图像文件中包含颜色表,位 图的数据表示对应像素点在颜色表中相应的索引值,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轨道交通项目招投标文件袋密封
- 城市照明控制中心监理合同范例
- 养猪场建设施工合同
- 办公室管理革命:6S管理技巧
- 融资市场动态分析报告
- 健身房财务部长聘用合同
- 2024年设计合同标的和服务内容
- 2025年度消防安全设施设备采购与安装合同3篇
- 集市客户服务集贸市场管理办法
- 信息技术主管聘用合同
- GB/T 21099.2-2024企业系统中的设备和集成过程控制用功能块(FB)和电子设备描述语言(EDDL)第2部分:FB概念规范
- 主持人培训课件
- 内蒙古包头市青山区2023-2024学年七年级上学期期末调研检测数学试卷(含解析)
- 期末模拟练习(试题)(含答案)-2024-2025学年三年级上册数学西师大版
- 2024-2025学年语文二年级上册统编版期末测试卷(含答案)
- 足内翻的治疗
- 音乐表演生涯发展展示
- 2024年黑龙江农业工程职业学院单招职业适应性测试题库
- 企业法律顾问详细流程
- 国际能源署IEA:2030年中国的电力系统灵活性需求报告(英文版)
- 2024年世界职业院校技能大赛高职组“关务实务组”赛项参考试题库(含答案)
评论
0/150
提交评论