ani文件格式的详细说明,找了半天没找到

mengxiang2003 2006-11-17 09:34:46
谁能发个过来
...全文
446 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2006-11-18
  • 打赏
  • 举报
回复
ANI 资料


根据 Daub NetWorks 编写的ANI结构手册翻译而成











--------------------------------------------------------------------------------

简介 ANI 文件将用于存储 Win95 和 WinNT 系统的动画光标数据,它的格式符合 RIFF (资源交换文件格式),是 RIFF 的一个子集。如果你想彻底了解 ANI 的结构,推荐查阅 RIFF 格式文档。

--------------------------------------------------------------------------------




基本文件格式ANI 文件由‘块’(chunk)构成。块的类型共有两种:包容块、和数据块。它们的结构如下:包容块: 偏移 尺寸 内容 0 4 块标示字符串 4 4 块尺寸(不包括块标示字符串和本变量的 8 字节) 8 4 块内容描述串 12 上面的块尺寸减去4 块内容 数据块: 偏移 尺寸 内容 0 4 块标示字符串 4 4 块尺寸(不包括块标示字符串和本变量的 8 字节) 8 根据上面的块尺寸而定 块内容 块标示字符串由 4 个字符组成,不足 4 个字符的块标示串用空格符填充。包容型的块 标示字符串有两种:RIFF和LIST,数据型的块标示字符串有很多种,如:anih、icon、 INAM、IART、rate、seq等等。ANI 文件中必须包含一个内容描述串为“ACON”的RIFF块作为开始,所有的数据都将被包含在这个块中。这个RIFF块至少应该包含两个子块:一个以“anih”为标示的数据块,和一个以“LIST”为标示的包容块(该块中将包含一个或多个图象)。另外,ANI 文件也可以同时包含以“seq”为标示的块(播放序列)和以“rate”为标示的块(播放速率)。 文件基本布局: 名称 块标示 RIFF 块内容描述串='ACON' anih ANI图象参数结构块 LIST 块内容描述串='fram' icon 单帧图象 ... seq (可选的) 指定了图象帧的显示序列。注意“seq ”中‘q’后面有一空格符。 rate (可选的) 指定了每一播放帧的停留时间(以FPS为单位)


'anih' 块结构名称 尺寸 描述 HeaderSize 4 字节 ‘anih’结构的尺寸(总是等于 32) NumFrames 4 字节 本文件中存储的图象帧数 NumSteps 4 字节 播放帧数。(可能包括重复的帧。如果文件中没有出现过 ‘seq ’块,那么本变量等于 NumFrames 的值) Width 4 字节 以象素为单位的总宽度值 Height 4 字节 以象素为单位的总高度值 BitCount 4 字节 位深度(BPP) NumPlanes 4 字节 位面板数=1 DisplayRate 4 字节 缺省播放速率(以 1/60 秒为单位) Flags 4 字节 当前只有两位被使用 保留 bits 31~2 未使用 =0 SequenceFlag bit 1 TRUE: 文件包含‘seq ’块 IconFlag bit 0 TRUE: 帧是以光标或图标格式存放的 FALSE: 帧是以BMP裸(raw)格式存放的(无头结构)


'icon' 块结构根据 anih.Flags.IconFlag 标志值的不同,‘icon’块中的数据可能是光标、图标、或是BMP裸数据。图标和光标数据可以同时出现在一个ANI文件中,但是BMP裸数据不能与它们混合使用。如果文件中同时包含图标和光标数据,那么它们都是以它们自己的格式出现(包括它们的头结构)。BMP裸数据的宽、高等参数则存放在‘anih’块中,不过到现在为止,我还没有看到过一个ANI文件是以BMP裸数据来存放图象的。

'seq ' 块结构这个块定义了帧的播放顺序,块中每个元素的值是帧序号(以 0 为基),允许重复播放某些帧。如果文件中没有‘seq ’块,那么播放顺序将等于帧在文件中的存储顺序。如果文件是作为Windows平台的光标使用,那么可以根据‘seq ’块进行循环播放。 名称 尺寸 描述 seq 4 bytes 第 0 帧序号 重复 anih.NumSteps 个

'rate' 块结构这个块为播放序列中的每一帧定义了对应的显示停留时间(播放速率),如果文件中没有‘seq ’块,那么‘rate’将对应帧列表(根据帧在文件中的存储位置而形成的列表)。 名称 尺寸 描述 Rate 4 字节 第 0 帧的停留时间值 重复 anih.NumSteps 个
--------------------------------------------------------------------------------


注释我没有看到一个在非Windows平台实现的ANI软件,这大概是这种文件格式过于繁琐造成的,读取一个 ANI 图象需要准备三种解码函数:ICO、CUR、BMP。但我想这不应该成为不去实现的一个理由:) 另外,在理解 ANI 文件前最好能对 RIFF 格式有所了解,这样才能事半功倍。最后,祝你好运!
--------------------------------------------------------------------------------



YZ 2002-3-31日PM 1:35
最后修改于 2002-3-31日

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧