bmp文件的格式:
包括4部分。第一部分是文件头,占用14字节;第二部分是信息头,占用40字节;第三部分是调色板,这是可选的部分;第四部分是像素信息。
各部分的字段的详细信息可见下表:
bmp文件的结构体的定义:
#pragma once
#include <stdio.h>
#include <stdlib.h>
typedef unsigned int UINT; //4 bytes
typedef unsigned short USHORT; //2 bytes
typedef signed int INT; //4 bytes
typedef unsigned char BYTE; //1 byte
//pragma用来取消默认对齐,如果没有,所占大小为16字节
#pragma pack(push)
#pragma pack(1)
//文件头
typedef struct BITMAPFILEHEADER{
USHORT bFileType;//文件类型,有固定值
UINT bFileSize;//文件的字节大小
USHORT bReserved1;//保留1
USHORT bReserved2;//保留2
UINT bPixelDataOffset;//文件头起始到位图数据之间的偏移量
}BITMAPFILEHEADER;
#pragma pack(pop)
//信息头
typedef struct BITMAPINFOHEADER{
UINT bHeaderSize;//信息头的字节大小,有固定值
INT bImageWidth;//图像的宽度(单位: