BMP图片格式

参考内容:
BMP格式详解

1、整体信息

BMP格式的文件从头到尾依次是如下信息:

bmp文件头(bmp file header):共14字节
位图信息头(bitmap information):共40字节
调色板(color palette):可选(4*256=1024字节)
位图数据

14+40+1024=1078字节

2、bmp文件头(bmp file header)

bmp文件头包含如下信息:

bfType:2字节,文件类型;
bfSize:4字节,文件大小;
bfReserved1:2字节,保留,必须设置为0;
bfReserved2:2字节,保留,必须设置为0;
bfOffBits:4字节,从头到位图数据的偏移;

在这里插入图片描述

在这里插入图片描述

3、位图信息头(bitmap information)

位图信息头一共40字节,包含如下内容:

biSize:4字节,信息头的大小,即40;
biWidth:4字节,以像素为单位说明图像的宽度;
biHeight:4字节,以像素为单位说明图像的高度,同时如果为正,说明位图倒立(即数据表示从图像的左下角到右上角),如果为负说明正向;
biPlanes:2字节,为目标设备说明颜色平面数,总被设置为1;
biBitCount:2字节,说明比特数/像素数,值有1、2、4、8、16、24、32;
biCompression:4字节,说明图像的压缩类型,最常用的就是0(BI_RGB),表示不压缩;
biSizeImages:4字节,说明位图数据的大小,当用BI_RGB格式时,可以设置为0;
biXPelsPerMeter:表示水平分辨率,单位是像素/米,有符号整数;
biYPelsPerMeter:表示垂直分辨率,单位是像素/米,有符号整数;
biClrUsed:说明位图使用的调色板中的颜色索引数,为0说明使用所有;
biClrImportant:说明对图像显示有重要影响的颜色索引数,为0说明都重要;

4、调色板(Color Palette)

调色板是可选的,不过这里的8位色图有调色板。那么接下来的数据就是调色板了。调色板就是一个颜色的索引,这里是8位色图,一共有256中颜色,由于每个颜色都有RGB三原色,也就是要3个字节表示,这样的话256个颜色就不能表示所有的颜色,所以就需要一个索引,用一个字节的索引指向4个字节表示的颜色(RGB加上Alpha值)。如果把这4个字节表示为一个Color类型,那么调色板就是Color的数组。由于Color类型也是一个数组,调色板就像一个二维数组palette[N][4],其中N是颜色的数量,这里就是256。因此,这个例子中的调色板的大小就是256x4=1024字节,在调色板之前,有14字节的bmp文件头,40字节的位图信息头,加上1024字节的调色板,一共1078字节,也就是说真正的图像数据前面有1078字节,这和bmp文件头中的bfOffBits相符,验证了我们的讨论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值