程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> FLIC動畫文件的播放程序設計

FLIC動畫文件的播放程序設計

編輯:VB綜合教程
Autodesk公司的三維動畫設計軟件3DS在我國已廣泛使用,其良好的性能為計算機專家和藝術家所肯定。其動畫存儲文件FLIC也給系統提供了存儲和顯示的方便。下面具體分析FLIC文件的格式及播放程序的設計。
  一、FLIC文件格式的概述
  FLIC文件事實上是對一個靜止畫面序列的描述,連續顯示這一序列便可在上產生動畫效果。FLIC文件結構簡潔,彈出速度快,雖然每種基色最多只有256級灰度,圖像深度只有8位,使用起來很方便。
  FLIC文件有兩種類型:FLI文件和FLC文件。FLC文是FLI文件的進一步發展,它采用更高效的壓縮技術,且其分辨率也不僅限於320×200。我們在PC上經常使用的FLI文件,因為它和VGA的320×200×256顯示相匹配。
  FLIC文件采取的壓縮技術原理就是僅保存前一幀中改變的部分。這樣占的空間小,彈出速度快。FLIC文件的結果可分為3個層次:文件層、幀層和塊層。文件層給出了FLIC文件的基本特征。幀層定義了幀的緩沖和塊中塊的數目。塊層包括塊的大小、類型和實際數據。這樣層次結構很容易實現,特別是可以增加塊的類型以滿足新的需要,同時無需涉及原定義。
  二、各層頭的結構
  1.FLI文件格式的結構定義
  ①文件頭的結構定義
  文件頭長度為80H字節,其C語言結構定義如下
  /*flifilehedaerstruct*/
  typedefstruct{
  unsignedlongfli-size;/*00H:文件總長度*/
  unsignedintmagic;/*04H:文件格式,FLC=AF12;
  FLI=AF11;*/
  unsignedintframes-number;/*06H:FLIC的幀數*/
  unsignedintscreen-width;/*08H:屏幕寬度*/
  unsignedintscreen-height;/*0AH:屏幕高度*/
  unsignedintunuserd;/*0CH:保留未用*/
  unsignedintflags;/*0EH:標志=0003*/
  unsignedintspeed;/*10H:幀間播放速度單位*/
  unsignedlongnext;/*12H:置為0*/
  unsignedlongfrit;/*16H:置為0*/
  unsignedcharfli-expand[102];/*1AH:保留作擴展用=0*/
  }FLIHEAD;
  ②幀頭的結構定義
  幀頭長度為10H字節,其C語言結構定義如下:
  /*framesheaderstruct*/
  typedefstruct{
  unsignedlongsize-frame;/*00H:幀大小,包括本幀頭*/
  unsignedintmagic;/*04H:幀標識字=0F1FAH*/
  unsignedintchunks;/*06H:本幀塊數*/
  unsignedcharexpand[8];/*08H:保留未用=0*/
  }FRAMESHEAD;
  ③塊頭的結構定義
  塊頭長度為6H字節,其C語言結構定義如下:
  /*chunkheaderstruct*/
  typedefstruct{
  unsignedlongsize-chunk;/*00H:塊大小*/
  unsignedtype-chunk;/*04H:塊類型*/
  }CHUNKHEAD;
  2.FLC文件格式的結構定義
  文件頭長度為80H字節,其C語言結構定義如下:
  /*flifileheaderstruct*/
  typedefstruct{
  unsignedlongfli-size;/*00H:文件總長度*/
  unsignedintmagic;/*04H:文件格式,FLC=AF12;
  FLI=AF11;*/
  unsignedintframes-number;/*06H:FLIC的幀數*/
  unsignedintscreen-width;/*08H:屏幕寬度*/
  unsignedintscreen-height;/*0AH:屏幕高度*/
  unsignedintdepth;/*0CH:圖像深度*/
  unsignedintflags;/*0EH:標志=0003*/
  unsignedintspeed;/*10H:幀間播放速度單位
  FLC=1ms,FLI=1/70s*/
  unsignedintreserved-1;/*14H:保留未用*/
  unsignedlongcreatetime;
  unsignedlongcreator;
  unsignedlongupdatetime;
  unsignedlongupdater;
  unsignedintaspectx;/*創建文件時的顯示屏幕像素
  大小的縱橫比,VGA320×200
  unsignedintaspecty;為6∶5*/
  unsignedcharreserved-2[0x26];/*保留未用,=0*/
  unsignedlongoffsetframel;/*50H:第一幀畫面相對於文件
  開始的偏移*/
  unsignedlongoffsetframe2;/*54H:第二幀畫面相對於文件
  開始的偏移*/
  unsignedcharreserved-3[0x28];/*保留未用=0*/
  }FLIHEAD;
  FLC的幀頭和塊頭的結構定義和FLI文件格式的定義相同。
  每塊的數據緊接在FLIC文件頭的後面。對於不同的塊類型有不同的數據含義,下面就不同的塊類型分別介紹,這是設計播放FLIC動畫文件程序的關鍵之所在。
  三、塊類型的含義
  
  FLIC格式文件中的塊類型有許多種,每一種類型都有不同的定義,因此我們必須對每一種類型作出准確的分析。由於動畫格式FLIC圖像文件的塊類型具有極強的可擴展性,在此我們只介紹幾種常見的塊類型。
  1.類型04H
  為每基色256級灰度->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved