BMP图片格式说明
- 格式:pdf
- 大小:215.87 KB
- 文档页数:13
BMP简介
BMP是一种与硬件设备无关的图像文件格式,使用非常广。BMP是Windows环境中交换与图有关的数据的一种标准,在Windows环境中运行的图形图像软件都支持BMP图像格式。
文件结构
典型的BMP图像文件由三或四部分组成:1:文件头
2:图像参数
3:调色板(目前基本不使用)
4:位图数据
1:文件头,它包含BMP图像文件的类型、内容尺寸和起始偏移量等信息;
字节顺序数据结构描述
1,2short 高8位为字母’B’,低8位为字母’M’
3,4,5,6int文件大小
7,8short保留字1
9,10short保留字2
11,12,13,14int数据部分偏移
量
数据部分偏移量
⏹位图数据部分相对于文件首的起始偏移量
⏹数据部分偏移量的存在,说明图像数据部分并不一定要紧随图像参数或调色板之后放置,BMP图片的制作者其实可以在调色板之后、数据部分之前填充任何内容,只要正确地设置偏移量即可。
返回
字节顺序数据结构描述
31,32,33,34int压缩方式
35,36,37,38int水平分辨率,
pixels-per-meter
39,40,41,42int垂直分辨率,
pixels-per-meter
43,44,45,46int垂直分辨率,
pixels-per-meter
47,48,49,50int引用色彩数
51,52,53,54int关键色彩数
back
3:调色板,可选部分,
⏹bpp:表示图像像素值的位数叫做图像的像素深度,又称为位/像素(BPP)。
⏹bpp较小的位图需要调色板;有些位图,比如24bpp(真彩色)图就不需要调色板;
⏹今天讲的是打开真彩色BMP位图。真彩色即24位图,它是不需要调色板的。
4:位图数据
这部分的内容因位图实际像素位数和编码格式而不同,在真彩位图中直接使用RGB真彩色值;而有调色板的位图则使用调色板中颜色索引值。
位图数据的读取
⏹1.每行的字节数必须是4的倍数,如果不是,则需要用0补齐。
⏹2.BMP位图数据的存放是从下到上,从左到右的。先读最后一行,读完后在读倒数第二行。
压缩方式
⏹第31-34字节存储着一个int型参数,它代表图像数据的压缩方式。该参数的取值范围是0、1、2或3中的一个。这些取值的含义分别是:
⏹0 —— RGB方式
⏹1 —— 8bpp的run-length-encoding方式
⏹2 —— 4bpp的run-length-encoding方式
⏹3 —— bit-fields方式
⏹只有压缩方式选项被置为bit-fields时,当前结构体的大小为56字节,否则为40字节。
1.BMP文件头(占14个字节)
⏹int bfType;// 位图文件类型,占两个字节,第一个字节为字母'B',第二个字节为字母'M'(1-2字节)
⏹int bfSize;// 位图文件的大小,以字节为单位(3-6字节)
⏹// 第7-10字节为位图的保留字,其Int值为0⏹// 位图数据的起始位置,以相对与位图(11-14字节)
⏹int bfOffBits;
⏹
⏹
⏹ 2.位图信息头(占40字节)
⏹
⏹int size;// 位图信息头所占用字节数,为40个字节
(15-18字节)
⏹static int image_width;// 位图的宽度,以像素为单位
(19-22字节)
⏹static int image_height;// 位图的高度,以像素为单
位(23-26字节)
⏹int planes;// 目标设备的级别,必须为1(27-28字节)⏹static int biBitCount;// 每个像素所需的位数,必须
是1(双色)、4(16色)、8(256色)、24(真彩色)之一,(29-30字节)
⏹int biCompression;// 位图压缩类型,必须是0(不压
缩)、1(BI_RLE8压缩类型)、2(BI_RLE4压缩类型)之一。
(31-34字节)
⏹static int sizeImage;// 位图的大小,以字节为单位(35-38字节)
⏹int biXPelsPerMeter;// 位图水平分辨率,每米像素数(39-42字节)
⏹int biYPelsPerMeter;// 位图垂直分辨率,每米像素数(43-46字节)
⏹int biClrUsed;// 位图实际使用的颜色表中的颜色数(47-50字节)
⏹int biClrImportant;// 位图显示过程中重要的颜色数(51-54字节)