编辑:
2016-02-26
unsigned long fli-size;/* 00H:文件总长度 */
unsigned int magic; /* 04H:文件格式,FLC=AF12;
FLI=AF11; */
unsigned int frames-number; /* 06H:FLIC的帧数 */
unsigned int screen-width; /* 08H:屏幕宽度 */
unsigned int screen-height; /* 0AH:屏幕高度 */
unsigned int unuserd; /* 0CH:保留未用 */
unsigned int flags; /* 0EH:标志=0003 */
unsigned int speed; /* 10H:帧间播放速度单位 */
unsigned long next; /* 12H:置为0 */
unsigned long frit; /* 16H:置为0 */
unsigned char fli-expand[102]; /* 1AH:保留作扩展用=0 */
} FLIHEAD;
②帧头的结构定义
帧头长度为10H字节,其C语言结构定义如下:
/* frames header struct */
typedef struct {
unsigned long size-frame; /* 00H:帧大小,包括本帧头 */
unsigned int magic; /* 04H:帧标识字=0F1FAH */
unsigned int chunks; /* 06H:本帧块数 */
unsigned char expand[8]; /* 08H:保留未用=0 */
} FRAMESHEAD;
③块头的结构定义
块头长度为6H字节,其C语言结构定义如下:
/* chunk header struct */
typedef struct {
unsigned long size-chunk; /* 00H:块大小 */
unsigned type-chunk; /* 04H:块类型 */
} CHUNKHEAD;
2.FLC文件格式的结构定义
文件头长度为80H字节,其C语言结构定义如下:
/* fli file header struct */
typedef struct {
unsigned long fli-size; /* 00H:文件总长度 */
unsigned int magic; /* 04H:文件格式,FLC=AF12;
FLI=AF11; */
unsigned int frames-number; /* 06H:FLIC的帧数 */
unsigned int screen-width; /* 08H:屏幕宽度 */
unsigned int screen-height; /* 0AH:屏幕高度 */
unsigned int depth; /* 0CH:图像深度 */
unsigned int flags; /* 0EH:标志=0003 */
unsigned int speed; /* 10H:帧间播放速度单位
FLC=1ms, FLI=1/70s */
unsigned int reserved-1; /* 14H:保留未用 */
unsigned long createtime;
unsigned long creator;
unsigned long updatetime;
unsigned long updater;
unsigned int aspectx; /* 创建文件时的显示屏幕像素大小的纵横比,VGA320×200
unsigned int aspecty; 为6∶5 */
unsigned char reserved-2[0x26]; /* 保留未用,=0 */
unsigned long offsetframel; /* 50H:第一帧画面相对于文件
开始的偏移 */
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文件长度。它的具体定义为:可选字、小块数及小块的值。①可选字:
当高位=11时,低位部分为跳行数。该字可以有多个,其跳行数相加。当高位=10时,低位部分内容为当前行的最后一个字节。(作为本行的结束标志)。②小块数:当高位=00时,此字表示小块数的值。③小块:第一个字节:跳列数。第二个字节:小块类型:当该值为正时:表示要从块中搬到图像中的像素(字)个数N,其后就是N个连续的像素数据;当该值为负时:它的绝对值N表示要重复从块中搬到图像中的像素(字)的次数,其后就是那个像素的数据
。第三个字节:块中的图像数据(字)。
编辑老师为大家整理了2000字动漫设计论文,希望对大家有所帮助。更多详情请点击进入艺术类论文。
标签:动漫设计论文
威廉希尔app (51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。