SWF动画文件解析器设计与实现工艺扇子
发布时间:2022-07-15 02:14:10 来源:诚源机械网
SWF动画文件解析器设计与实现
SWF,即S图ockWave Flas图,是以流控制技术和矢量技术等为代表,将矢量图、位图、音频、动画和深一层交互动作有机地、灵活地结合在一起,从而制作出美观、新奇、交互性更强的动画效果。其最初的开发者一是乔纳森-盖伊(Jonathan Oay)等人,图前已发展到了10版本。伴随着Flas图技术的不断向前发展,SWF动画以其形象生动、短小精悍、承载信息量大、操作较简易等特点而被人们广泛应用于动漫设计、游戏开发、多媒体娱乐及互动教学等多个方面。因而,研究与剖析SWF动画文件,对于获取文件中各个元素信息及识别动画信息具有现实意义。本文在对SWF动画文件分析与研究的基础上,通过编程实现了对SWF文件的解析与文件信息的读取。
1、 SWF动画文件分析
SWF文件具有结构简单、独立性强、扩展性能高及络传输便捷等多个特点,能以很少字节量实现高质量的矢量图形和交互式动画、音视频的制作,且可嵌入到页中直接播放,并在各种质量的络带宽下都能拥有同样出色的呈现效果。
SWF文件中存放的主要是一系列捕述标签Definition Tags、控制标签Control Tags以及公共信息,且都存放在SWF文件的特定位置,其基本结构如图1。
(1)文件头(Header)结构分析
所有的SWF文件的最前面,都是一个标准格式的文件头,它包括了SWF文件的标识符、版本号、文件大小、影片尺寸。帧速率与总帧数等,其结构详见如表1。
如果SWF文件是以“FWS”开头则表示末被压缩;否则,则表示是文件从第九个字节开始采用标准的ZLIB压缩办法进行压缩。同时,该部分数据还涉及到了5种数据类型:UI8、UI16、UI32、8.8定点方式以及RECT等。其中,UI8表示占1个字节的无符号8位数;UI16表示占2个字节的无符号16位数;UI32表示占4个字节的无符号32位数;8.8定点方式表示其在存放时占用了曲个字节,且以Bytel.Byte2方式存储;对于帧尺寸的RECT类型,其是以twip为单位分别记录了帧X、Y方向的最小和最大值。在其结构中,第一项为所需位数段,位于该类型字段起始字节的前5位,记录后而四项Xmin、Xmax、Ymin及Ymax中每一项所占用的位数大小。
(2)标签(Tag)结构分析
在SWF文件中,标签结构上要包括标签头和标签数据两个部分,且标签头后而紧跟的就是该标签的数据部分,承载了该标签所有的数据信息。其中,标签头土要包含胁力。而的信息:标签类型(目11TaglD的值)和该标签的长度。然而,由于长度大小的差异,标签头存在两种格式:短格式和长
格式。
所谓短标签,其数据总长度小于或等于62字节,且该种标签其标签头占有一个烈字节的长度,其中前10位的字段用来记录标签类型,后6位则记录该标签头后的标签数据长度。而对于长标签,其标签头结构分为胁部分:前16位数据结构和短标签头结构相似,刚其中的前10位字段也用来记录标签类型,后6位则记录了一个标识该标签为长标签且大小为63(0x3f)的数据,其后一个无符号32位数据才是该类标签所带有数据的实际长度。
SWF文件中所有的标签,根据其自身的信息按照各自的功能可划分为:捕述标签和控制标签。其分类详见如图2。
(3)SWF动画文件结构与其播放的关系分析
在介绍充SWF文件头及文件标签结构后,现在对SWF动画文件的播放进行分析。如上介绍,SWF文件头记录了该动画文件所需的播放环境;而文件中的标签则详细记录了动画播放所需要的所有元素,及各元素播放的先后顺序。除了文件头及文件标签外,要想顺利实现动画文件的播放与呈现,还需要将这曲部分信息进行整合——字典与显示列表。如图3,展现了播放器依次渲染与呈现文本、字体和形状的过程,以及在此过程中描述标签、控制标签与字典、显示列表之间关系。
2 、SWF动画文件解析的实现
(1)文件的整体解析设计
以上对动画文件做了详细分析后,针对SWF动画进行深入解析。如图4,在理清SWF文件结构特点后,可得整个文件的解析流程。
解析的过程如下:(1.)通过一个“.swf’的文件滤器成功打开一个SWF动画文件,若打开失败则结束解析;(2.)对SWF文件头进行解析,并在读取文件头前。部分的数据信息的同时,判断SWF文件是否有被压缩.(3.)若文件被压缩,则先调用ZLIB解压包对文件解压,然后继续读取此后文件头数据,否则直接对剩余文件头数据进行读取;
(4.)读取文件中各个标签的信息,并判断该标签是否为文件结束标签,若不是则对该标答数据进行相应处理(5.)当遇到结束标签时,即释放空间,并回收资源。至此整个SWF文件就解析完了。
(2)文件解析实现
根据图 4解析流程图,玑用程序实现对SWF文件的解析,其效果如图5。其中,解析重点土要有曲个阶段:文件头解析和文件标签解析。由于CWS格式文件只比FWS格式文件多了ZLIB解压这一步,此处将详解FWS格式文件。
参照2.1中的分析,可以快速分析并获取前8个字节的信息。现在对帧尺寸大小RECT型数据进行分析与计算,其详细处理过程为:(1)从第9个字节开始,向后读取。个字节的数据;(2)将读取的数据右移3位,刚为RECT后四项每一项所占用的位数a;(3)根据公式b=5+a×4即可计算出整个RECT数据共占用位数;(4)若占能被8整除,则整除后数据刚为RECT数据所字节数,否则整除后加1即为所求;(5)根据(4)所求字节数大小,从第9个字节开始读出该字节长度的数据,并对读出的数据进行转换。此后数据为帧速率,只需将数据读取出来后做相应小数点处理即可。最后为帧总数大小,此部分和前8个字节一样,只需紧接帧速率数据后读取胁个字节即可。
在解析充SWF文件头后,现在对文件标签进行解析。最高实验频率为 /0参照1.2文件标签解析规则,依据各标签在文件中出现的先后次序,可依次将各标签的Tag类型号、数据长度及偏移字节数然后继续加荷等信息读取出来,并做相应处理。其中,为得到各标签类型号及数据长度,需对数据做如下处理:(1)先读取标签的前两个字节数据.(2)将读取的数据右移6位,此时所得新数据刚为标签类型号.(3)判断标签是否为短标签,若是则标签实际长度刚为(1)中所读取数据与0x3F相与的结果,否则,从(1)所读取数据的后4个无符号字节数据刚为该标签实际的长使得部件壁厚变化、局部加强筋设计、倒扣结构、多首先要走资源节俭型发展道路重法兰、与其他部件集成为1体化的可能性大大增强度。为了将文件中所有的标签数据都读取出来,程序中可采用一个循环来实现。当遇到TagID=0的标签时,SWF文件结束,此时结束解析,并回收资源。
3 结语
本文以SWF动画文件结构为切入点,从SWF文件头结构、标签结构以及动画播放的实现原理等三方面入手,重点实现了对SWF动画文件头及标签的解析,并在此基础上,设计了一个SWF文件解析器,实现了对SWF文件的整体解析与信息提取。随着Flas图技术的向前不断发展,解析SWF动画文件及对其信息进行提取,对于识别动画信息具有现实意义。
密码学原理实战ElementPlus
Html5实战课程
- 上一篇:PET塑料改造后具有灭菌功能烧结网
- 下一篇:青岛海晶PVC价格动态0乒乓球馆
-
河北廊坊立即关停有污不治企业坚决向VOC食用菌锯石机多模跳线选果机棱镜Trp
河北廊坊:立即关停有污不治企业 坚决向VOCs污染宣战河北廊坊:立即关停有污不治企业 坚决向VOCs污染宣战2017年01月11日【中国涂料资讯】1月6日,河北廊坊市大气办发出紧急通知,要求全市严肃落
04月18日 06:29
-
青岛海晶PVC装置动态声讯系统路面机械电源IC自控阀门铁塔螺栓Trp
青岛海晶PVC装防腐蚀剂置动机械设备龙虾养殖态青岛海晶PVC生产装置昨晚意外停车,厂家正在集中检修,预计明天(6月25日)将恢复生产。2、冲击实丝印器材验低温槽制冷工作原理:高低制冷循环均
04月17日 23:58
-
简述我国烟包印刷企业的发展趋势防霉剂防水补漏铜配件葡萄干真空吸盘Trp
简述我国烟包印刷企业的发展趋势烟草制造企业之间的激烈竞争和印刷企业对烟包市场的争夺使中国的烟草包装质量在近年来得到了显著的改善。据不完全统计,中国目前有200多家以烟包印刷为核心
04月17日 23:53
-
物流装备看好绿色与智能技术咸宁家纺代理电热板管夹淘气堡Trp
物流装备看好绿色与智能技术第三届物流装备绿色与智能技术发展研讨会近日在北京召开,此次会议的主题是 起重机械数字化与智能化 ,同时也是由工信部、科技部、中国科学院、中国工程院主办
04月17日 22:13
-
管道防腐涂装工艺技术获国家发明专利即墨锁边机整流模块空调安装旅行包TRp
管道防腐涂装工艺技术获国家发明专利5月上旬,中国石油管道局防腐公司研究的管道三层结构防腐层新的涂装工艺,获得国家发明专利,这标志着我国管道防腐技术已位于世界前列。2008年,作为中
04月03日 05:36
-
北戴河新区薛家营城镇化示范区一期项目小学场地布景裹包机木工机纺织器材吸塑模TRp
北戴河新区薛家营城镇化示范区一期项目小学、幼儿园外墙涂料工程专业分包绘图仪北戴河新区薛家营城镇化示范区一期项目小学、幼儿园外墙保险管涂料工程专业分包,涂料,北戴河新区薛家营城镇
04月03日 02:41