矢量组合图标文件格式设计
2017-08-07 22:55
357 查看
本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处!
表2-1 图标索引文件记录存储分配表
图3-1 图标数据文件组成图
3.1 文件头
图标数据文件的文件头为100字节定长,图标数据文件的文件头存储分配如表3-1所示。
表3-1 图标数据文件的文件头存储分配表
文件长度指以字节(byte)为单位的整个文件的长度,其中包括100个字节的文件头。
3.2 记录头
记录头存储图标ID、叠放层次和包含的单个图标个数。记录头长12字节,存储分配如表3-2所示。
表3-2 记录头存储分配
3.3 记录内容
图标位移的逻辑结构如下:
图标颜色的逻辑结构如下:
单个图标的逻辑结构如下:
记录的存储分配如表3-3所示。
表3-3 记录存储分配表
1 概述
矢量组合图标文件用于记录由多个矢量图标组成的矢量组合图标。矢量组合图标文件包括图标索引文件和图标数据文件两个部分。2 图标索引文件
图标索引文件由文件头和记录组成。其中,文件头为100字节定长,记录为8字节定长。记录的存储分配如表2-1所示。表2-1 图标索引文件记录存储分配表
位 置 | 域 | 值 | 数据类型 |
Byte 0 | 图标ID | 图标ID | Long |
Byte 4 | 起始位置 | 起始位置 | Long |
3 图标数据文件
图标数据文件由一个定长的文件头和一系列变长记录组成。每一个变长记录又由一个定长的记录头和定长的记录内容组成。图标数据文件的组成如图3-1所示。图3-1 图标数据文件组成图
3.1 文件头
图标数据文件的文件头为100字节定长,图标数据文件的文件头存储分配如表3-1所示。
表3-1 图标数据文件的文件头存储分配表
位 置 | 域 | 值 | 数据类型 |
Byte 0 | File Code | 9994 | Integer |
Byte 4 | Unused | 0 | Integer |
Byte 8 | Unused | 0 | Integer |
Byte 12 | Unused | 0 | Integer |
Byte 16 | Unused | 0 | Integer |
Byte 20 | Unused | 0 | Integer |
Byte 24 | File Length | File Length | Integer |
Byte 28 | Version | 1000 | Integer |
Byte 32 | Unused | 0 | Integer |
Byte 36 | Unused | 0 | Integer |
Byte 40 | Unused | 0 | Integer |
Byte 44 | Unused | 0 | Integer |
Byte 48 | Unused | 0 | Integer |
Byte 52 | Unused | 0 | Integer |
Byte 56 | Unused | 0 | Integer |
Byte 60 | Unused | 0 | Integer |
Byte 64 | Unused | 0 | Integer |
Byte 68 | Unused | 0 | Integer |
Byte 72 | Unused | 0 | Integer |
Byte 76 | Unused | 0 | Integer |
Byte 80 | Unused | 0 | Integer |
Byte 84 | Unused | 0 | Integer |
Byte 88 | Unused | 0 | Integer |
Byte 92 | Unused | 0 | Integer |
Byte 96 | Unused | 0 | Integer |
3.2 记录头
记录头存储图标ID、叠放层次和包含的单个图标个数。记录头长12字节,存储分配如表3-2所示。
表3-2 记录头存储分配
位 置 | 域 | 值 | 数据类型 |
Byte 0 | 图标ID | 图标ID | Integer |
Byte 4 | 绘制图元的叠放层次 | 默认-1,表示不存在 | BYTE |
Byte 8 | 包含单个图标的个数 | 默认0,表示不存在单个图标 | Int |
图标位移的逻辑结构如下:
struct Stru_Translate { float x; float y; };
图标颜色的逻辑结构如下:
struct Stru _Color { float fRed; // 红色分量0-1.0 float fGreen; // 绿色分量0-1.0 float fBlue; // 蓝色分量0-1.0 };
单个图标的逻辑结构如下:
struct Stru_SingleIcon { long ID; // 单个图标的ID; float Scalef; // 单个图标的缩放倍数 float RotatefZ; // 单个图标绕Z轴旋转的角度 Stru_Translate Displacement; // 单个图标的位移 Stru_GL_Color Color; // 单个图标的颜色 bool IsVariable; // 单个图标的颜色是否可变 BYTE nZ; // 单个图标的叠放层次 };
记录的存储分配如表3-3所示。
表3-3 记录存储分配表
位置 (字节) | 域 名 | 值 | 数据类型 | 数 量 |
Byte 0 | ID | ID | Long | 1 |
Byte 4 | Scalef; | Scalef; | float | 1 |
Byte 8 | RotatefZ; | RotatefZ; | float | 1 |
Byte 12 | Displacement | Displacement | Stru_translate | 1 |
Byte 20 | Color | Color | Stru_GL_Color | 1 |
Byte 32 | IsVariable | IsVariable | bool | 1 |
Byte 33 | nZ | nZ | BYTE | 1 |
相关文章推荐
- 【赏析】15个非常棒的使用CSS3的设计组合
- 设计模式笔记之四:MVP+Retrofit+RxJava组合使用
- 设计模式学习笔记——组合模式
- 23种设计模式之组合模式(Composite)
- java设计模式之组合
- 设计模式之组合模式(Composite Pattern)
- 设计模式15 - 组合模式【Composite Pattern】
- 设计模式:抽象集合(组合,迭代器)
- 学习设计模式第十一 - 组合模式
- 常用测试设计方法--数据组合覆盖测试设计
- c#设计模式-组合模式
- PHP设计模式之组合(Composite)模式
- 设计模式之15组合模式(笔记)
- Net设计模式实例之组合模式(Composite Pattern)(3)
- 设计模式系列(二): 组合模式
- 设计模式学习-----组合模式
- 设计模式之组合模式(Composite)
- c++设计模式之组合模式
- 设计模式之组合模式(Composite)
- 设计模式之组合模式