在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
|