矢量组合图标文件格式设计

10 篇文章 0 订阅
6 篇文章 0 订阅

本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处!

1 概述

矢量组合图标文件用于记录由多个矢量图标组成的矢量组合图标。矢量组合图标文件包括图标索引文件和图标数据文件两个部分。

2 图标索引文件

图标索引文件由文件头和记录组成。其中,文件头为100字节定长,记录为8字节定长。记录的存储分配如表2-1所示。

表2-1 图标索引文件记录存储分配表
位 置 数据类型
Byte 0 图标ID 图标ID Long
Byte 4 起始位置 起始位置 Long

3 图标数据文件

图标数据文件由一个定长的文件头和一系列变长记录组成。每一个变长记录又由一个定长的记录头和定长的记录内容组成。图标数据文件的组成如图3-1所示。
图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

文件长度指以字节(byte)为单位的整个文件的长度,其中包括100个字节的文件头。
3.2 记录头
记录头存储图标ID、叠放层次和包含的单个图标个数。记录头长12字节,存储分配如表3-2所示。

表3-2 记录头存储分配
位 置 数据类型
Byte 0 图标ID 图标ID Integer
Byte 4 绘制图元的叠放层次 默认-1,表示不存在 BYTE
Byte 8 包含单个图标的个数 默认0,表示不存在单个图标 Int

3.3 记录内容
图标位移的逻辑结构如下:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值