资源描述:
《flic动画文件的播放程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、FLIC动画文件的播放程序设计Autodesk公司的三维动画设计软件3DS在我国已广泛使用,其良好的性能为计算机专家和艺术家所肯定。其动画存储文件FLIC也给系统提供了存储和显示的方便。下面具体分析FLIC文件的格式及播放程序的设计。一、FLIC文件格式的概述FLIC文件事实上是对一个静止画面序列的描述,连续显示这一序列便可在上产生动画效果。FLIC文件结构简洁,弹出速度快,虽然每种基色最多只有256级灰度,图像深度只有8位,但使用起来很方便。FLIC文件有两种类型:FLI文件和FLC文件。FLC文是FL
2、I文件的进一步发展,它采用更高效的压缩技术,且其分辨率也不仅限于320×200。我们在PC上经常使用的FLI文件,因为它和VGA的320×200×256显示相匹配。FLIC文件采取的压缩技术原理就是仅保存前一帧中改变的部分。这样占的空间小,弹出速度快。FLIC文件的结果可分为3个层次:文件层、帧层和块层。文件层给出了FLIC文件的基本特征。帧层定义了帧的缓冲和块中块的数目。块层包括块的大小、类型和实际数据。这样的层次结构很容易实现,特别是可以增加块的类型以满足新的需要,同时无需涉及原定义。二、各层头的结构
3、1.FLI文件格式的结构定义①文件头的结构定义文件头长度为80H字节,其C语言结构定义如下/*flifilehedaerstruct*/typedefstruct{unsignedlongfli-size;/*00H:文件总长度*/unsignedintmagic;/*04H:文件格式,FLC=AF12;FLI=AF11;*/unsignedintframes-number;/*06H:FLIC的帧数*/unsignedintscreen-esheaderstruct*/typedefstruct{uns
4、ignedlongsize-frame;/*00H:帧大小,包括本帧头*/unsignedintmagic;/*04H:帧标识字=0F1FAH*/unsignedintchunks;/*06H:本帧块数*/unsignedcharexpand[8];/*08H:保留未用=0*/}FRAMESHEAD;③块头的结构定义块头长度为6H字节,其C语言结构定义如下:/*chunkheaderstruct*/typedefstruct{unsignedlongsize-chunk;/*00H:块大小*/unsign
5、edtype-chunk;/*04H:块类型*/}CHUNKHEAD;2.FLC文件格式的结构定义文件头长度为80H字节,其C语言结构定义如下:/*flifileheaderstruct*/typedefstruct{unsignedlongfli-size;/*00H:文件总长度*/unsignedintmagic;/*04H:文件格式,FLC=AF12;FLI=AF11;*/unsignedintframes-number;/*06H:FLIC的帧数*/unsignedintscreen-s,FLI=
6、1/70s*/unsignedintreserved-1;/*14H:保留未用*/unsignedlongcreatetime;unsignedlongcreator;unsignedlongupdatetime;unsignedlongupdater;unsignedintaspectx;/*创建文件时的显示屏幕像素大小的纵横比,VGA320×200unsignedintaspecty;为6∶5*/unsignedcharreserved-2[0x26];/*保留未用,=0*/unsignedlongo
7、ffsetframel;/*50H:第一帧画面相对于文件开始的偏移*/unsignedlongoffsetframe2;/*54H:第二帧画面相对于文件开始的偏移*/unsignedcharreserved-3[0x28];/*保留未用=0*/}FLIHEAD;FLC的帧头和块头的结构定义和FLI文件格式的定义相同。每块的数据紧接在FLIC文件头的后面。对于不同的块类型有不同的数据含义,下面就不同的块类型分别介绍,这是设计播放FLIC动画文件程序的关键之所在。三、块类型的含义FLIC格式文件中的块类型有许
8、多种,每一种类型都有不同的定义,因此我们必须对每一种类型作出准确的分析。由于动画格式FLIC图像文件的块类型具有极强的可扩展性,在此我们只介绍几种常见的块类型。1.类型04H为每基色256级灰度的彩色调色板信息表FLIC-COLOR,其第一个字为需调色的调色子块数(一个字),紧接其后的是需调色的相应各块的数据定义:字节含义第一字节:跳色数,在本块中的需要跳过的颜色数(字节)。第二字节:调色数,本块中有多少种颜色需要改变,当调色