當前位置:編程學習大全網 - 編程語言 - gif有哪幾種形式

gif有哪幾種形式

 GIF文件的數據,是壹種基於LZW算法的連續色調的無損壓縮格式,那麽妳對GIF了解多少呢?下面就讓我來給妳科普壹下什麽是gif。

gif的歷史

 在早期,GIF所用的LZW壓縮算法是Compuserv所開發的壹種免費算法。然而令很多軟件開發商感到意外的是,GIF文件所采用的壓縮算法忽然成了Unisys公司的專利。據Unisys公司稱,他們已註冊了LZW算法中的W部分。如果要開發生成(或顯示)GIF文件的程序,則需向該公司支付版稅。由此,人們開始尋求壹種新技術,以減少開發成本。PNG(Portable Network Graphics,便攜網絡圖形)標準就在這個背景下應運而生了。它壹方面滿足了市場對更少的法規限制的需要,另壹方面也帶來了更少的技術上的限制,如顏色的數量等。

 在2003年6月20日,LZW算法在美國的專利權已到期而失效。在歐洲、日本及加拿大的專利權亦已分別在2004年的6月18日、6月20日和7月7日到期失效。盡管如此,PNG文件格式憑著其技術上的優勢,已然躋身於網絡上第三廣泛應用格式。與GIF相關的專利於2006年8月11日過期。

gif的分類

 GIF分為靜態GIF和動畫GIF兩種,擴展名為.gif,是壹種壓縮位圖格式,支持透明背景圖像,適用於多種操作系統,?體型?很小,網上很多小動畫都是GIF格式。其實GIF是將多幅圖像保存為壹個圖像文件,從而形成動畫,最常見的就是通過壹幀幀的動畫串聯起來的搞笑gif圖,所以歸根到底GIF仍然是圖片文件格式。但GIF只能顯示256色。和jpg格式壹樣,這是壹種在網絡上非常流行的圖形文件格式。

 GIF主要分為兩個版本,即GIF 89a和GIF 87a

 GIF 87a:是在1987年制定的版本

 GIF 89a:是1989年制定的版本。在這個版本中,為GIF文檔擴充了圖形控制區塊、備註、說明、應用程序編程接口等四個區塊,並提供了對透明色和多幀動畫的支持

gif的語法格式

 語法是用來表達序列的壹種符號形式,並用這個表達序列中的壹些對象來形成更大的對象。語法也用於表達在給定的位置出現對象的數目。在此給出的語法用來說明形成gif數據流的塊序列,用壹些規則列表來表達。下面列出用於gif語法的符號定義。

 圖例: <> 語法詞

 ::= 符號定義

 * 0個或更多的事件發生

 + 1個或更多的事件發生

 | 替代元素

 [] 可選元素

 gif語法的符號定義:

 <GIF數據流> ::= 頭部 <;邏輯視屏> <;數據>* 尾記錄

 這個規則將<Gif 數據流>;實體定義如下。它必須以頭部開始,頭部後面接壹個邏輯視屏實體,該實體要用其他規則來定義。最後,數據實體接結束符。數據實體後面的*表示數據實體可以在此位置出現0或多次。

 <Gif 數據流> ::= 頭部 <;邏輯視屏> <;數據>* 尾記錄

 <;邏輯視屏> ::= 邏輯視屏描述塊 [全局色表]

 <;數據> ::= <;成象塊> |<;特殊用途塊>

 <;成象塊> ::= [圖象控制擴充] <;成象塊>

 <;成象塊> ::= <;基於表的圖象> |純文本擴充

 <;基於表的圖象> ::= 圖象描述符 [局部色表] 圖象數據

 <;特殊用途塊> ::= 應用擴充 |註釋擴充

 gif數據流中的數據塊可以分為三組:控制塊、成象塊和特殊用途塊。

 控制塊,如:頭部、邏輯視屏描述塊、圖像控制擴充和尾記錄,包含用於控制處理數據流或設置硬件參數的信息。

 成像塊,如:圖像描述符和純文本擴充,包含用於在顯示設備上成像的信息和數據。

 特殊用途塊,如:註釋擴充和應用擴充,包含那些既不用於處理數據流也不用於在顯示設備上成象的信息。

  • 上一篇:PDF格式是什麽
  • 下一篇:Java是什麽 深入解析Java編程語言?
  • copyright 2024編程學習大全網