在C语言中,BMP文件格式有一个特定的数据结构。BMP文件分为文件头、信息头和像素数据。下面是BMP文件的基本数据结构:
BMP 文件数据结构
#include <stdint.h>
// BMP 文件头
typedef struct {
uint16_t bfType; // 文件类型,通常为 'BM'
uint32_t bfSize; // 文件大小
uint16_t bfReserved1; // 保留字段
uint16_t bfReserved2; // 保留字段
uint32_t bfOffBits; // 像素数据的偏移量
} BMPFileHeader;
// BMP 信息头
typedef struct {
uint32_t biSize; // 信息头大小
int32_t biWidth; // 图像宽度
int32_t biHeight; // 图像高度
uint16_t biPlanes; // 色平面数,通常为1
uint16_t biBitCount; // 每个像素的比特数(如24位)
uint32_t biCompression; // 压缩类型
uint32_t biSizeImage; // 图像大小
int32_t biXPelsPerMeter; // 水平分辨率
int32_t biYPelsPerMeter; // 垂直分辨率
uint32_t biClrUsed; // 使用的颜色数
uint32_t biClrImportant; // 重要的颜色数
} BMPInfoHeader;
// 像素数据
typedef struct {
uint8_t blue; // 蓝色分量
uint8_t green; // 绿色分量
uint8_t red; // 红色分量
} RGBPix
|