- 相關推薦
FLIC動畫文件的播放程序設計
改調色的相應的RGB值。
通常FLIC圖像文件的頭一幀的第一塊數據便是該類型(或0BH類塊)。在程序設計中我們定義了一個256色的調色板數組:
char palette[768];
用于完成調色板的初始化工作。
2.類型07H
該類型數據以字節為基礎,只適用于.FLC文件,處理對第一幀圖像的改變情況較為適用。它含有本幀圖像對于上與幀圖像的改變部分。
這種塊類型是一種最常用的、最復雜的塊類型,一般除了第一幀外后面的各幀通常采用這種塊類型進行行數據壓縮存儲。它的描述如下:
字節含義
(1)第一個字:需要改變的行的數量
(2)第二個字開始:是具體需要改變的數據本身。每一行是進行單獨的壓縮的,這種技術的采用大大壓縮了.FLC文件長度。它的具體定義為:可選字、小塊數及小塊的值。①可選字:
當高位=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恰好相反。
字節含義
(1)第一字節 本行中小塊數。
(2)第二字節 小塊的具體內容。
①第一字節:小塊類型:當該值為負時:它的絕對值表示要搬到圖像中的像素(字節)個數,其后就是數據;當該值為正時,表示要將下一個像素復制到圖像中的次數,該像素(字節)緊隨其后。
②第二個字節:塊中的圖像數據。
7.類型10H
這種類型不進行壓縮,塊中的數據個數一定為圖像的長寬相乘。這種類型在實際應用中一般不用。
下面具體討論播放程序的C語言程序設計方法,本文中的程序是針對.FLI格式的動畫文件而進行的程序設計。讀者如果要播放.FIC格式的動畫文件,只需根據.FIC文件格式的具體定義,并參照下面的程序設計方法即可設計出相應的程序。
四、程序設計
1.第一幀圖像的播放程序
void First-Frame (Video-Mem, fli-fp)
char *Video-Mem;
FILE *fli-fp;
{
int Line-PacketNumber
int Size-Count=0
int Screen-Char;
long Sereen-Count=0L;
memset(Video-Mem, 0,60000);
do {
Line-PacketNumber=fgetc(fli-fp);
while(Line-PacketNumber--)
{
Size-Count=fgetc(fli-fp);
if ( (Size-COUNT & 0X80)==0X80
{
Size-Co
[1] [2] [3]
【FLIC動畫文件的播放程序設計】相關文章:
什么是變速播放04-26
什么是播放時間04-26
什么是播放時間04-26
什么是播放時間04-26
什么是播放時間04-26
什么是支持播放格式04-26
什么是音頻播放格式04-26
什么是播放錄制功能04-26
聲音出現播放間斷11-29
森林防火語音播放稿03-09