男人摸女人的胸视频,91精品国产91久久久久久最新,黄色视频性爱免费看,黄瓜视频在线观看,国产小视频国产精品,成人福利国产一区二区,国产高清精品自拍91亚洲,国产91一区二区

加急見(jiàn)刊

FLIC動(dòng)畫(huà)文件的播放程序設(shè)計(jì)

章偉

Autodesk公司的三維動(dòng)畫(huà)設(shè)計(jì)軟件3DS在我國(guó)已廣泛使用,其良好的性能為計(jì)算機(jī)專(zhuān)家和藝術(shù)家所肯定。其動(dòng)畫(huà)存儲(chǔ)文件FLIC也給系統(tǒng)提供了存儲(chǔ)和顯示的方便。下面具體分析FLIC文件的格式及播放程序的設(shè)計(jì)。 一、FLIC文件格式的概述 FLIC文件事實(shí)上是對(duì)一個(gè)靜止畫(huà)面序列的描述,連續(xù)顯示這一序列便可在上產(chǎn)生動(dòng)畫(huà)效果。FLIC文件結(jié)構(gòu)簡(jiǎn)潔,彈出速度快,雖然每種基色最多只有256級(jí)灰度,圖像深度只有8位,但使用起來(lái)很方便。 FLIC文件有兩種類(lèi)型:FLI文件和FLC文件。FLC文是FLI文件的進(jìn)一步發(fā)展,它采用更高效的壓縮技術(shù),且其分辨率也不僅限于320×200。我們?cè)赑C上經(jīng)常使用的FLI文件,因?yàn)樗蚔GA的320×200×256顯示相匹配。 FLIC文件采取的壓縮技術(shù)原理就是僅保存前一幀中改變的部分。這樣占的空間小,彈出速度快。FLIC文件的結(jié)果可分為3個(gè)層次:文件層、幀層和塊層。文件層給出了FLIC文件的基本特征。幀層定義了幀的緩沖和塊中塊的數(shù)目。塊層包括塊的大小、類(lèi)型和實(shí)際數(shù)據(jù)。這樣的層次結(jié)構(gòu)很容易實(shí)現(xiàn),特別是可以增加塊的類(lèi)型以滿足新的需要,同時(shí)無(wú)需涉及原定義。 二、各層頭的結(jié)構(gòu) 1.FLI文件格式的結(jié)構(gòu)定義 ①文件頭的結(jié)構(gòu)定義 文件頭長(zhǎng)度為80H字節(jié),其C語(yǔ)言結(jié)構(gòu)定義如下 /* fli file hedaer struct */ typedef struct { unsigned long fli-size;/* 00H:文件總長(zhǎng)度 */ unsigned int magic; /* 04H:文件格式,F(xiàn)LC=AF12; FLI=AF11; */ unsigned int frames-number; /* 06H:FLIC的幀數(shù) */ unsigned int screen-width; /* 08H:屏幕寬度 */ unsigned int screen-height; /* 0AH:屏幕高度 */ unsigned int unuserd; /* 0CH:保留未用 */ unsigned int flags; /* 0EH:標(biāo)志=0003 */ unsigned int speed; /* 10H:幀間播放速度單位 */ unsigned long next; /* 12H:置為0 */ unsigned long frit; /* 16H:置為0 */ unsigned char fli-expand[102]; /* 1AH:保留作擴(kuò)展用=0 */ } FLIHEAD; ②幀頭的結(jié)構(gòu)定義 幀頭長(zhǎng)度為10H字節(jié),其C語(yǔ)言結(jié)構(gòu)定義如下: /* frames header struct */ typedef struct { unsigned long size-frame; /* 00H:幀大小,包括本幀頭 */ unsigned int magic; /* 04H:幀標(biāo)識(shí)字=0F1FAH */ unsigned int chunks; /* 06H:本幀塊數(shù) */ unsigned char expand[8]; /* 08H:保留未用=0 */ } FRAMESHEAD; ③塊頭的結(jié)構(gòu)定義 塊頭長(zhǎng)度為6H字節(jié),其C語(yǔ)言結(jié)構(gòu)定義如下: /* chunk header struct */ typedef struct { unsigned long size-chunk; /* 00H:塊大小 */ unsigned type-chunk; /* 04H:塊類(lèi)型 */ } CHUNKHEAD; 2.FLC文件格式的結(jié)構(gòu)定義 文件頭長(zhǎng)度為80H字節(jié),其C語(yǔ)言結(jié)構(gòu)定義如下: /* fli file header struct */ typedef struct { unsigned long fli-size; /* 00H:文件總長(zhǎng)度 */ unsigned int magic; /* 04H:文件格式,F(xiàn)LC=AF12; FLI=AF11; */ unsigned int frames-number; /* 06H:FLIC的幀數(shù) */ unsigned int screen-width; /* 08H:屏幕寬度 */ unsigned int screen-height; /* 0AH:屏幕高度 */ unsigned int depth; /* 0CH:圖像深度 */ unsigned int flags; /* 0EH:標(biāo)志=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; /* 創(chuàng)建文件時(shí)的顯示屏幕像素大小的縱橫比,VGA320×200 unsigned int aspecty; 為6∶5 */ unsigned char reserved-2[0x26]; /* 保留未用,=0 */ unsigned long offsetframel; /* 50H:第一幀畫(huà)面相對(duì)于文件 開(kāi)始的偏移 */ unsigned long offsetframe2; /* 54H:第二幀畫(huà)面相對(duì)于文件 開(kāi)始的偏移 */ unsigned char reserved-3[0x28]; /* 保留未用=0 */ } FLIHEAD; FLC的幀頭和塊頭的結(jié)構(gòu)定義和FLI文件格式的定義相同。 每塊的數(shù)據(jù)緊接在FLIC文件頭的后面。對(duì)于不同的塊類(lèi)型有不同的數(shù)據(jù)含義,下面就不同的塊類(lèi)型分別介紹,這是設(shè)計(jì)播放FLIC動(dòng)畫(huà)文件程序的關(guān)鍵之所在。 三、塊類(lèi)型的含義 FLIC格式文件中的塊類(lèi)型有許多種,每一種類(lèi)型都有不同的定義,因此我們必須對(duì)每一種類(lèi)型作出準(zhǔn)確的分析。由于動(dòng)畫(huà)格式FLIC圖像文件的塊類(lèi)型具有極強(qiáng)的可擴(kuò)展性,在此我們只介紹幾種常見(jiàn)的塊類(lèi)型。 1.類(lèi)型04H 為每基色256級(jí)灰度的彩色調(diào)色板信息表FLIC-COLOR,其第一個(gè)字為需調(diào)色的調(diào)色子塊數(shù)(一個(gè)字),緊接其后的是需調(diào)色的相應(yīng)各塊的數(shù)據(jù)定義: 字節(jié) 含義 第一字節(jié):跳色數(shù),在本塊中的需要跳過(guò)的顏色數(shù)(字節(jié))。 第二字節(jié):調(diào)色數(shù),本塊中有多少種顏色需要改變,當(dāng)調(diào)色數(shù)為0時(shí)指調(diào)256色。初始時(shí)當(dāng)前色號(hào)為零。 其后的字節(jié):以三字節(jié)為一組,是需要改調(diào)色的相應(yīng)的RGB值。 通常FLIC圖像文件的頭一幀的第一塊數(shù)據(jù)便是該類(lèi)型(或0BH類(lèi)塊)。在程序設(shè)計(jì)中我們定義了一個(gè)256色的調(diào)色板數(shù)組: char palette[768]; 用于完成調(diào)色板的初始化工作。 2.類(lèi)型07H 該類(lèi)型數(shù)據(jù)以字節(jié)為基礎(chǔ),只適用于.FLC文件,處理對(duì)第一幀圖像的改變情況較為適用。它含有本幀圖像對(duì)于上與幀圖像的改變部分。 這種塊類(lèi)型是一種最常用的、最復(fù)雜的塊類(lèi)型,一般除了第一幀外后面的各幀通常采用這種塊類(lèi)型進(jìn)行行數(shù)據(jù)壓縮存儲(chǔ)。它的描述如下: 字節(jié)含義 (1)第一個(gè)字:需要改變的行的數(shù)量 (2)第二個(gè)字開(kāi)始:是具體需要改變的數(shù)據(jù)本身。每一行是進(jìn)行單獨(dú)的壓縮的,這種技術(shù)的采用大大壓縮了.FLC文件長(zhǎng)度。它的具體定義為:可選字、小塊數(shù)及小塊的值。①可選字: 當(dāng)高位=11時(shí),低位部分為跳行數(shù)。該字可以有多個(gè),其跳行數(shù)相加。當(dāng)高位=10時(shí),低位部分內(nèi)容為當(dāng)前行的最后一個(gè)字節(jié)。(作為本行的結(jié)束標(biāo)志)。②小塊數(shù):當(dāng)高位=00時(shí),此字表示小塊數(shù)的值。③小塊:第一個(gè)字節(jié):跳列數(shù)。第二個(gè)字節(jié):小塊類(lèi)型:當(dāng)該值為正時(shí):表示要從塊中搬到圖像中的像素(字)個(gè)數(shù)N,其后就是N個(gè)連續(xù)的像素?cái)?shù)據(jù);當(dāng)該值為負(fù)時(shí):它的絕對(duì)值N表示要重復(fù)從塊中搬到圖像中的像素(字)的次數(shù),其后就是那個(gè)像素的數(shù)據(jù) 。第三個(gè)字節(jié):塊中的圖像數(shù)據(jù)(字)。 3.類(lèi)型0BH 與類(lèi)型04H類(lèi)似,它與VGA的13H模式相匹配。 4.類(lèi)型0CH 與類(lèi)型07H類(lèi)似,但它以字節(jié)為基礎(chǔ),通常用于.FLI文件 字節(jié)含義 (1)第一個(gè)字:從屏幕上方開(kāi)始和上一幀相同的行數(shù)即本幀中第一行要改變的行號(hào)。例如:如果有一個(gè)改變(運(yùn)動(dòng))僅僅只是在屏幕的底部,那么此時(shí)該字值為199(VGA320×200)。 (2)第二個(gè)字:需要改變的行的數(shù)量。 (3)第三個(gè)字以后:是具體需要改變的數(shù)據(jù)本身。每一行是進(jìn)行單獨(dú)的壓縮的,這種技術(shù)的采用大大壓縮了.FIC文件長(zhǎng)度。它的具體定義為:小塊數(shù)及塊的值。 ①小塊數(shù):此字表示小塊的個(gè)數(shù)值,它是本行中含有小塊的個(gè)數(shù)。當(dāng)小塊數(shù)=0時(shí),說(shuō)明本行和上一行相同,不用進(jìn)行重新處理。 ②小塊:第一個(gè)字節(jié):跳列數(shù)。第二個(gè)字節(jié):小塊類(lèi)型:當(dāng)該值為正時(shí):表示要從塊中搬到圖像中的像素(字節(jié))個(gè)數(shù)N,其后就是N個(gè)連續(xù)的像素?cái)?shù)據(jù);當(dāng)該值為負(fù)時(shí):它的絕對(duì)值N表示要重復(fù)從塊中搬到圖像中的像素(字節(jié))的次數(shù),其后就是那個(gè)像素的數(shù)據(jù)。第三個(gè)字節(jié): 塊中的圖像數(shù)據(jù)。 5.類(lèi)型0DH 該類(lèi)型沒(méi)有數(shù)據(jù),該幀的所有像素值都為0。在實(shí)際應(yīng)用中通常它只產(chǎn)生在當(dāng)用戶使用3DS創(chuàng)建一個(gè)新的FLIC文件中的第一幀。 6.類(lèi)型0FH 該類(lèi)型用于壓縮圖像,通常只用于第一幀。它采用了Run-Length壓縮方法。該方法與類(lèi)型07H及0CH中的行數(shù)據(jù)壓縮方法是相似的。只是在該方法中正負(fù)號(hào)的定義與類(lèi)型07H和0CH恰好相反。 字節(jié)含義 (1)第一字節(jié) 本行中小塊數(shù)。 (2)第二字節(jié) 小塊的具體內(nèi)容。 ①第一字節(jié):小塊類(lèi)型:當(dāng)該值為負(fù)時(shí):它的絕對(duì)值表示要搬到圖像中的像素(字節(jié))個(gè)數(shù),其后就是數(shù)據(jù);當(dāng)該值為正時(shí),表示要將下一個(gè)像素復(fù)制到圖像中的次數(shù),該像素(字節(jié))緊隨其后。 ②第二個(gè)字節(jié):塊中的圖像數(shù)據(jù)。 7.類(lèi)型10H 這種類(lèi)型不進(jìn)行壓縮,塊中的數(shù)據(jù)個(gè)數(shù)一定為圖像的長(zhǎng)寬相乘。這種類(lèi)型在實(shí)際應(yīng)用中一般不用。 下面具體討論播放程序的C語(yǔ)言程序設(shè)計(jì)方法,本文中的程序是針對(duì).FLI格式的動(dòng)畫(huà)文件而進(jìn)行的程序設(shè)計(jì)。讀者如果要播放.FIC格式的動(dòng)畫(huà)文件,只需根據(jù).FIC文件格式的具體定義,并參照下面的程序設(shè)計(jì)方法即可設(shè)計(jì)出相應(yīng)的程序。

下載