Header 块
约 405 字大约 1 分钟
- Type ID: 0
- Type: Array
结构
Header 块(固定块)
Header = array(5)| 索引 | 键名 | 类型 | MessagePack 类型 | 字节长度 | 是否可原地更新 |
|---|---|---|---|---|---|
| 0 | type | uint16 | uint16 | 2 bytes | 不支持 |
| 1 | version | uint16 | uint16 | 2 bytes | 不支持 |
| 2 | guid | string(36) | str8 | 36 bytes | 不支持 |
| 3 | pageNum | uint16 | uint16 | 2 bytes | 是 |
| 4 | time | uint64 | uint64 | 8 bytes | 是 |
提示
区域长度固定,字段顺序必须严格保持一致。
键名具体说明
typeRequired
格式对应的块类型固定为 0
versionRequired
格式对应的规范版本号
guidRequired
固定 36 字符 UUID(格式 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
此标识用于唯一标识该墨迹,创建文件时应使用随机生成器生成 GUID 并确定此值,以防止重复。
pageNumRequired
当前表示的总页数
注意
此字段表示逻辑页数,而非 Canvas 块数量(因为一页可能包含多个图层,因此 Canvas 块数 ≥ 逻辑页数)。
timeRequired
Unix UTC 时间戳(单位:秒)
设计原则
数组长度固定为 5
所有数值类型固定宽度
禁止使用最小整数自动编码
支持通过文件定位后直接覆盖写:
- pageNum
- time
示例
[
0,
10,
"5fe30f46-be92-49b6-b921-a60706febf10",
12,
1700000000
]原地更新说明
允许安全原地更新字段:
- Header[3] → pageNum
- Header[4] → time
禁止原地修改(需要重新完整写入):
guidversion
相关流程说明
在文件创建的时候需要填入 version guid pageNum time。
在文件重新写入或增量追加写入时需要更新 pageNum time 的值。