文件头
变量名 | 地址偏移 | 大小 (bytes) | 值 | 作用 |
bfType | 0000h | 2 | 42 4d | ‘BM’,即Windows支持的位图格式。 |
bfSize | 0002h | 4 | 0000B6CA | 文件大小,即文件属性中文件大小的值 |
bfReserved1 | 0006h | 2 | 0000 | 保留 |
bfReserved2 | 0008h | 2 | 0000 | 保留 |
bfOffBits | 000Ah | 4 | 00000036 | 从文件头到位图数据需偏移70字节 |
信息头
大致有以下几种:
目前实践了解看,应该是出于兼容考虑,目前windows生成的位图都采用“windows V3”,Mac OS(苹果操作系统)采用“OS/2 V1”。因此,以下针对最可能用到的两种格式进行说明。
windows V3
变量名 | 地址偏移 | 大小 (bytes) | 值 | 作用 |
biSize | 000E | 4 | 00000028 | BITMAPINFOHEADER结构所需要的字数。 |
biWidth | 0012 | 4 | 00000140 (320) | 说明图像的宽度,以像素为单位 |
biHeight | 0016 | 4 | 00000036 (54) | 说明图像的高度,以像素为单位 如果该值是正数,说明图像是倒向; 如果该值是负值,说明图像是正向。 |
biPlanes | 001A | 2 | 0001 | 为目标设备说明颜色平面数,其值将总是被设为1。 |
biBitCount | 001C | 2 | 0018 (24) | 说明比特数/像数,其值为1,4,8,16,32 |
biCompression | 001E | 4 | 00000000 | 说明图像数据压缩的类型,取值范围: 0 BI_RGB不压缩(最常用) …… 3 BI_BITFIELDS 比特域,用于16/32位位图 …… |
biSizeImage | 0022 | 4 | 00000000 | 说明图像大小。 以字节为单位。当用BI_RGB格式时,可设置为0。 |
biXPelsPerMeter | 0026 | 4 | 00000000 | 说明水平分辨率,用像素/米表示 |
biYPelsPerMeter | 002A | 4 | 00000000 | 说明垂直分辨率,用像素/米表示 |
biClrUsed | 002E | 4 | 00000000 | 说明位图实际使用的彩色表中的颜色索引数(设为0的话,则说明使用所有调色板项) |
biClrImportant | 0032 | 4 | 00000000 | 说明对图显示有重要影响的颜色索引的数目 如果是0,表示都重要 |
共计:40个字节
OS/2 V1
变量名 | 地址偏移 | 大小 (bytes) | 值 | 作用 |
biSize | 000E | 4 | 0000000C | BITMAPINFOHEADER结构所需要的字数。 |
biWidth | 0012 | 2 | 0140 (320) | 说明图像的宽度,以像素为单位 |
biHeight | 0016 | 2 | 0036 (54) | 说明图像的高度,以像素为单位 如果该值是正数,说明图像是倒向; 如果该值是负值,说明图像是正向。 |
biPlanes | 001A | 2 | 0001 | 为目标设备说明颜色平面数,其值将总是被设为1。 |
biBitCount | 001C | 2 | 0018 (24) | 说明比特数/像数,其值为1,4,8,16,32 |
共计:12字节