ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows 标准 BMP 磁盘存储结构详解(理论篇)

Windows 标准 BMP 磁盘存储结构详解(理论篇) 一、BMP 文件整体存储架构标准 Windows BMP 位图磁盘存储分为三段固定结构顺序不可错乱BITMAP文件头14字节 DIB信息头40字节 像素数据区。调色板规则色深 ≤ 8bit 的位图DIB头与像素区之间存在调色板24bit / 32bit 真彩色位图无调色板。二、偏移计算通用规则BMP 文件所有字段连续紧凑存储无空余填充。偏移计算公式下一段起始偏移 当前偏移 当前字段字节大小三、BITMAP 文件头14Byte偏移推演起始偏移0x0000当前偏移字段字节数下一段偏移0x0020x020x0240x060x0620x080x0820x0A0x0A40x0E文件头总占用0x0E14字节DIB 信息头紧随其后。四、DIB 信息头40Byte偏移推演起始偏移0x0E当前偏移字段字节数下一段偏移0x0E40x120x1240x160x1640x1A0x1A20x1C0x1C20x1E0x1E40x220x2240x260x2640x2A0x2A40x2E0x2E40x320x3240x36DIB 头总占用0x36 - 0x0E 40 字节。五、像素数据起始偏移核心规则开发重点文件头 DIB 头固定合计 54 字节0x36。禁止硬编码 54 作为像素起始偏移。偏移 0x0A 处的 4 字节字段 bfOffBits存储像素数据真实起始偏移为动态可变值。典型案例24bit 无调色板 BMPbfOffBits 0x00000036548bit 带调色板 BMP存在调色板数据偏移远大于 54工程开发必须读取该字段保证兼容所有位数 BMP。六、BMP 全局存储约束BMP 文件所有多字节整型数据统一采用小端模式存储。即低地址存低位数据高地址存高位数据。实操示例以像素起始偏移字段 bfOffBits偏移0x0A4字节为例假设真实偏移十进制值为540x00000036。磁盘4字节存储顺序0x36 0x00 0x00 0x00。内存读取后自动拼接为完整数值 0x00000036完全符合小端寻址规则这也是代码中可直接用 int/unsigned int 变量读取解析的核心原因。
返回列表