计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

FLIC动画文件的播放程序设计(1)(2)

2015-03-19 01:54
导读:开始的偏移 */ unsigned long offsetframe2; /* 54H:第二帧画面相对于文件 开始的偏移 */ unsigned char reserved-3[0x28]; /* 保留未用=0 */ } FLIHEAD; FLC的帧头和块头的结构定义

开始的偏移 */
unsigned long offsetframe2; /* 54H:第二帧画面相对于文件
开始的偏移 */
unsigned char reserved-3[0x28]; /* 保留未用=0 */
} FLIHEAD;
FLC的帧头和块头的结构定义和FLI文件格式的定义相同。
每块的数据紧接在FLIC文件头的后面。对于不同的块类型有不同的数据含义,下面就不同的块类型分别介绍,这是设计播放FLIC动画文件程序的关键之所在。
三、块类型的含义
FLIC格式文件中的块类型有许多种,每一种类型都有不同的定义,因此我们必须对每一种类型作出准确的分析。由于动画格式FLIC图像文件的块类型具有极强的可扩展性,在此我们只介绍几种常见的块类型。
1.类型04H
为每基色256级灰度的彩色调色板信息表FLIC-COLOR,其第一个字为需调色的调色子块数(一个字),紧接其后的是需调色的相应各块的数据定义:
字节 含义
第一字节:跳色数,在本块中的需要跳过的颜色数(字节)。
第二字节:调色数,本块中有多少种颜色需要改变,当调色数为0时指调256色。初始时当前色号为零。
其后的字节:以三字节为一组,是需要改调色的相应的RGB值。
通常FLIC图像文件的头一帧的第一块数据便是该类型(或0BH类块)。在程序设计中我们定义了一个256色的调色板数组:
char palette[768];
用于完成调色板的初始化工作。
2.类型07H
该类型数据以字节为基础,只适用于.FLC文件,处理对第一帧图像的改变情况较为适用。它含有本帧图像对于上与帧图像的改变部分。
这种块类型是一种最常用的、最复杂的块类型,一般除了第一帧外后面的各帧通常采用这种块类型进行行数据压缩存储。它的描述如下:
字节含义
(1)第一个字:需要改变的行的数量
(2)第二个字开始:是具体需要改变的数据本身。每一行是进行单独的压缩的,这种技术的采用大大压缩了.FLC文件长度。它的具体定义为:可选字、小块数及小块的值。①可选字: (科教作文网 zw.nseac.com整理)
当高位=11时,低位部分为跳行数。该字可以有多个,其跳行数相加。当高位=10时,低位部分内容为当前行的最后一个字节。(作为本行的结束标志)。②小块数:当高位=00时,此字表示小块数的值。③小块:第一个字节:跳列数。第二个字节:小块类型:当该值为正时:表示要从块中搬到图像中的像素(字)个数N,其后就是N个连续的像素数据;当该值为负时:它的绝对值N表示要重复从块中搬到图像中的像素(字)的次数,其后就是那个像素的数据
。第三个字节:块中的图像数据(字)。
3.类型0BH
与类型04H类似,它与VGA的13H模式相匹配。
4.类型0CH
与类型07H类似,但它以字节为基础,通常用于.FLI文件
字节含义
(1)第一个字:从屏幕上方开始和上一帧相同的行数即本帧中第一行要改变的行号。例如:如果有一个改变(运动)仅仅只是在屏幕的底部,那么此时该字值为199(VGA320×200)。
(2)第二个字:需要改变的行的数量。
(3)第三个字以后:是具体需要改变的数据本身。每一行是进行单独的压缩的,这种技术的采用大大压缩了.FIC文件长度。它的具体定义为:小块数及块的值。
①小块数:此字表示小块的个数值,它是本行中含有小块的个数。当小块数=0时,说明本行和上一行相同,不用进行重新处理。
②小块:第一个字节:跳列数。第二个字节:小块类型:当该值为正时:表示要从块中搬到图像中的像素(字节)个数N,其后就是N个连续的像素数据;当该值为负时:它的绝对值N表示要重复从块中搬到图像中的像素(字节)的次数,其后就是那个像素的数据。第三个字节:
块中的图像数据。
5.类型0DH
该类型没有数据,该帧的所有像素值都为0。在实际应用中通常它只产生在当用户使用3DS创建一个新的FLIC文件中的第一帧。
6.类型0FH
该类型用于压缩图像,通常只用于第一帧。它采用了Run-Length压缩方法。该方法与类型07H及0CH中的行数据压缩方法是相似的。只是在该方法中正负号的定义与类型07H和0CH恰好相反。
上一篇:可编程序控制器教学现状分析及课程建设研究( 下一篇:没有了