BMP文件格式及相应结构体

/**

  • @file name: main.c
  • @brief BMP文件结构体
  • @author 1810866453@163.com
  • @date 2024/05/12
  • @version 1.0 :版本
  • @property :属性介绍
  • @note 补充 注意 说明
  • CopyRight (c) 2023-2024 RISE_AND_GRIND@163.com All Right Reseverd
    */
// 文件信息结构体
typedef struct tag_bitmap_file_header
{
    unsigned short file_type; // 文件标识,为字母ASCII码“BM”
    unsigned int file_size;   // 位图文件大小,以字节为单位
    unsigned short reserved1; // 位图文件保留字,必须为0
    unsigned short reserved2; // 位图文件保留字,必须为0
    unsigned int offset_bits; // 文件开始到位图数据开始之间的偏移量字节
} __attribute__((packed)) bitmap_file_header;

// 位图信息结构体
typedef struct tag_bitmap_info_header
{
    unsigned int bitmap_info_size; // 图像描述信息快的大小,常为28H
    int bitmap_width;              // 图像宽度
    int bitmap_height;             // 图像高度
    unsigned short planes;         // 图像的plane总数(恒为1)
    unsigned short image_depth;    // 记录颜色的位数取值1(双色),4,6,24,,3
    unsigned int compression;      // 数据压缩方式(0:不压缩;1:8位压缩;2:4位压缩
    unsigned int image_size;       // 图像区数据的大小,必须是4的倍数
    int x_pels_permeter;           // 水平每米有多少像素,在设备无关位图中,填写00H
    int y_pels_permeter;           // 垂直每米有多少像素,在设备无关位图中,填写00H
    unsigned int color_used;       // 此图像所有的颜色数,不用,固定为0
    unsigned int color_important;  // 重要颜色数,不用,固定为0
} __attribute__((packed)) bitmap_info_header;

// 调色板信息结构体
typedef struct tag_bitmap_palette
{
    unsigned char blue;
    unsigned char green;
    unsigned char red;
    unsigned char reserved;
} __attribute__((packed)) bitmap_palette;
posted @ 2024-05-11 19:49  Zeratul$$$  阅读(43)  评论(0)    收藏  举报