图像文件格式BMP文件格式详解40099.pdf

上传人:得** 文档编号:75751968 上传时间:2023-03-04 格式:PDF 页数:5 大小:380.41KB
返回 下载 相关 举报
图像文件格式BMP文件格式详解40099.pdf_第1页
第1页 / 共5页
图像文件格式BMP文件格式详解40099.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《图像文件格式BMP文件格式详解40099.pdf》由会员分享,可在线阅读,更多相关《图像文件格式BMP文件格式详解40099.pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 BMP 文件格式 BMP 文件格式是 Microsoft Windows 下最常见的图像文件格式之一,它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP 文件所占用的空间很大;BMP文件的图像深度可选 lbit、4bit、8bit 及 24bit;BMP 文件存储数据时,图像的像素值在文件中的存放顺序为从左到右,从下到上,也就是说,在 BMP 文件中首先存放的是图像的最后一行像素,最后才存储图像的第一行像素,但对与同一行的像素,则是按照先左边后右边的的顺序存储的;另外一个需要关注的细节是:文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为 4 的倍数,则

2、正常存储,否则,需要在后端补 0,凑足 4 的倍数;由于 BMP 文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像都支持 BMP 图像格式;典型的 BMP 文件由四部分组成:1、位图头文件数据结构 主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;2、信息数据结构 包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜色数等信息;3、包含图像所用到的颜色表,显示图像时需用到这个 颜色表来生成调色板,但如果图像为真彩色,既图像的每个像素用 24 个比特来表示,文件中就没有这一块信息,也就不需要操作调色板;4

3、、位图数据 记录了位图的每一个像素值或该对应像素的颜色表的索引值,图像记录顺序是 在扫描行内是从左到右,扫描行之间是从下到上;这种格式我们又称为 Bottom_Up 位图,当然与之相对的还有 Up_Down 形式的位图,它的记录顺序是从上到下的,对于这种形式的位图,也不存在压缩形式;BMP 文件结构 位图文件 bitmap file,BMP 格式是 Windows 采用的图像文件存储格式,在 Windows 环境下运行的所有图像处理软件都支持这种格式;以后的 BMP 格式与显示设备无关,因此把这种BMP 格式称为设备无关位图 Device Independentbit Bitmap,DIB 格

4、式,Windows 能够在任何类型的显示设备上显示 BMP 位图;BMP 位图默认的文件扩展名是 bmp;1、文件结构 位图文件可看成由 4 个部分组成:位图文件头 Bitmap-File、位图信息头Bitmap-Information Header、彩色表 Color Table 和定义位图的字节阵列,它们的名称和符号如下表 1 所示:表 1 BMP 图像文件组成部分的名称和符号 位图文件的组成 结构名称 符 号 位图文件头 BITMAPEILEHEADER bmfh 位图信息头 BITMAPINFOHEADER bmib 彩色表 RGBQUAD aColors 图像数据阵列字节 BITMA

5、PDATA aBitmapBits 2、位图文件结构可综合在下表中:表 2 位图文件结构 偏移量 名称 大小 byte 内容 图 像 文 件 头 000h 标识符 2 两字节的内容用来识别位的类型:BMWindows,9x,NT,CI、CP、IC、PTOS/2 002h File Size 4 用字节表示的整个文件的大小 006h Reserved 4 保留,设置为 0 000Ah Bitmap Data Offset 4 从文件开始到位图数据开始之间的数据 Bitmap Data 的偏移量 图 像 信 息 头 000Eh Bitmap Header Size 4 位图信息头的长度,用来描述位

6、图的颜色和压缩方法等;下面的长度表示:28 h,9X,NT 0Ch/F0hOS/2 0012h Width 4 位图的宽度,以像素为单位 0016h Height 4 位图的高度,以像素为单位 001Ah Planes 2 位图的位面数 001Ch Bites Per Pixel 2 每个像素的位数 1单色位图;416 色图;8256 色位图 1616bit 高彩位图;2424 位真彩位图 001Eh Compression 4 压缩说明:0:无压缩;1RLE 8-bit/pixelBI_RLE4 2RLE 4-bit/pixelBIRLE8 3BitfieldsBI_BITFIELDS 00

7、22h Bitmap Data Size 4 用字节数表示的位图数据的大小;该数必须是 4 的倍数;0026h Hresolution 4 用 pixel/m 表示的水平分辨率 002Ah Vresolution 4 用 pixel/m 表示的水平分辨率 002Eh Colors 4 位图使用的颜色数;如8bit/pixel表示为100h或者256 0032h Important Colors 4 指定重要的颜色数;当该域的值等于颜色数时,表示所有颜色都一样重要 0036h Palette N4 调色板规范;对于调色板中的每个表项,这 4 个字节用下述方法来描述 RGB 的值:1 字节用于表示

8、 RGB 中的蓝色分量 1 字节用于表示 RGB 中的绿色分量 1 字节用于表示 RGB 中的红色分量 1 字节用于表示填充符设置为 0 0436h Bitmap Data X 该域的大小取决于压缩方法它包含所有的位图数据字节,这些数据字节实际就是彩色调节器色板的索引号 3、结构详解 1 位图文件头:它包含有关于文件类型、文件大小和存放位置等信息,在 Windows 以上版本的位图文件中用 BITMSPFILEHEADER 结构体来定义;位图文件头包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段;BMP 文件头数据结构含有 BMP 文件的类型、文件大小和位图起始位置等信息;其结

9、构定义如下:typedef struct tagBITMAPFILEHEADER WORD bfType;mp 格式支持 32 位色 DWORD biCompression;/位图压缩类型,必须是 0 不压缩,/1BI_RLE8 压缩类型或 2BI_RLE4 压缩类型之一 DWORD biSizeImage;/位图的大小,以字节为单位 LONG biXPelsPerMeter;/位图水平分辨率,每米像素数 LONG biYPelsPerMeter;/位图垂直分辨率,每米像素数 DWORD biClrUsed;/位图实际使用的颜色表中的颜色数 DWORD biClrImportant;/位图显示

10、过程中重要的颜色数 BITMAPINFOHEADER;/该结构占据 40 个字节 它由位图信息头和彩色表组成,前者用 BITMAPINFOHEADER 结构体定义,后者用RGBQUAD 结构体定义;1 彩色表的定位:应用程序进行彩色表的定位时,可使用存储在 biSize 成员中的信息来查找在 BITMAPINFO 结构体中的彩色表;2biBitCount:biBitCount=1 表示位图最多有两种颜色,黑色和白色;图像数据阵列中的每一位表示一个pixel:biBiCount=4表示位图最多有16种颜色;每个像素用场bit表示,交用这4bit作为彩色表的表项来查找该像素的颜色;3ClrUsed

11、:BITMAPINFOHEADER 结构中的成员 ClrUsed 指定实际使用的颜色数目;48bit/pixel 的图像数据压缩:BI_RLE8 8bit/pixel的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用;编码方式 由此及彼个字节组成,第一个字节指定使用相同颜色的像素数目,第二个字节指字使用的颜色索引;此外,这个字节对中的第一个字节可设置为 0,联合使用第二个字节的值表示:第二个字节的值为 0 行的结束 第二个字节的值为 1 图像结束 第二个字节的值为 2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量 绝对方式

12、第一个字节设置为 0,而第二个字节设置为 03h0FFh 之间的一个值;在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个像素的颜色索引;5 每个像素为 4 位的图像数据压缩:BI_RLE4 每个像素为4位的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一幅图中的任何地方使用;编码方式 由 2 个字节组成,第一个字节指定像素数目,第二个字节包含两种颜色索引;绝对方式 这个字节对中的第一个字节设置为 0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低 4 位中,一个颜色索引对应一个像素;BI_RLE4

13、 也同样联合使用第二个字节中的值表示:第二个字节的值为 0 行的结束 第二个字节的值为 1 图像结束 第二个字节的值为 2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量 3 彩色表:包含的元素与位图所具有的颜色数相同,像素的颜色用 RGBQUAD 结构来定义;彩色表中的颜色按颜色的重要性排序,这可辅助显示驱动程序为不能显示足够多颜色数的显示设备显示彩色图像;颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个 RGBQUAD 类型的结构,定义一种颜色;RGBQUAD 结构的定义如下:typedef struct tagRGBQUAD BYTE rgbBlue;/蓝色的

14、亮度值范围为 0-255 BYTE rgbGreen;/绿色的亮度值范围为 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=蓝调

15、色板 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个

16、像素占3个字节,此时图像为真彩色图像;当图像不是为真彩色时,图像文件中包含颜色表,位 图的数据表示对应像素点在颜色表中相应的索引值,当为真彩色时,每一个像素用三个字节表示图像相应像素点彩色值,每个字节分别对应 R、G、B 分量的值,这 时候图像文件中没有颜色表;上面我已经讲过了,Windows 规定图像文件中一个扫描行所占的字节数必须是4的倍数即以字为单位,不足的以0填充,图像文件中一个扫描行所占的字节数计算方法:DataSizePerLine=biWidth biBitCount+31/8;/一个扫描行所占的字节数 位图数据的大小按下式计算不压缩情况下:DataSize=DataSizePerLine biHeight;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com