BMP格式以及用纯C实现Load和Save
1 存储结构
BMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。
BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。
BMP文件的组成结构
位图文件头(bitmap-file header) |
位图信息头(bitmap-information header) |
彩色表/调色板(color table) |
位图数据(bitmap-data) |
下面来详细看一下每个组成部分的细节。
1.1 位图文件头(bitmap-file header)
位图文件头(bitmap-file header)包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段。
打开WINGDI.h文件,搜索"BITMAPFILEHEADER"就可以定位到BMP文件的位图文件头的数据结构定义。
typedef struct tagBITMAPFILEHEADER { |
tagBITMAPFILEHEADER结构
字 段 名 |
大小(单位:字节) |
描 述 |
bfType |
2 |
位图类别,根据不同的操作 系统而不同,在Windows 中,此字段的值总为'BM' |
bfSize |
4 |
BMP图像文件的大小 |
bfReserved1 |
2 |
总为0 |
bfReserved2 |
2 |
总为0 |
bfOffBits |