




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、gif圖片格式解析簡介:GIF(Graphics Interchange Format)是CompuServe公司開發(fā)的圖像文件存儲格式,1987年開發(fā)的GIF文件格式版本號是GIF87a,1989年進(jìn)行了擴(kuò)充,擴(kuò)充后的版本號定義為GIF89a。 GFI圖像文件以數(shù)據(jù)塊(block)為單位來存儲圖像的相關(guān)信息。一個(gè)GIF文件由表示圖形/圖像的數(shù)據(jù)塊、數(shù)據(jù)子塊以及顯示圖形/圖像的控制信息塊組成,稱為GIF數(shù)據(jù)流(Data Stream)。數(shù)據(jù)流中的所有控制信息塊和數(shù)據(jù)塊都必須在文件頭(Header)和文件結(jié)束塊(Trailer)之間。 GIF文件格式采用了LZW(Lempel
2、-Ziv Walch)壓縮算法來存儲圖像數(shù)據(jù),定義了允許用戶為圖像設(shè)置背景的透明(transparency)屬性。此外,GIF文件格式可在一個(gè)文件中存放多幅彩色圖形/圖像。如果在GIF文件中存放有多幅圖,它們可以像演幻燈片那樣顯示或者像動(dòng)畫那樣演示。 GIF 語法.語法是用來表達(dá)序列的一種符號形式,并用這個(gè)表達(dá)序列中的一些對象來形成更大的對象。語法也用于表達(dá)在給定的位置出現(xiàn)對象的數(shù)目。在此給出的語法用來說明形成gif數(shù)據(jù)流的塊序列,用一些規(guī)則列表來表達(dá)。下面列出用于gif語法的符號定義。圖例: <> 語法詞:= 符號定義* 0個(gè)或更多的事件發(fā)生+ 1個(gè)或更多的事件發(fā)生|
3、替代元素 可選元素gif語法的符號定義:<GIF 數(shù)據(jù)流> := 頭部 <邏輯視屏> <數(shù)據(jù)>* 尾記錄這個(gè)規(guī)則將<Gif 數(shù)據(jù)流>實(shí)體定義如下。它必須以頭部開始,頭部后面接一個(gè)邏輯視屏實(shí)體,該實(shí)體藥用其他規(guī)則來定義。最后,數(shù)據(jù)實(shí)體接結(jié)束符。數(shù)據(jù)實(shí)體后面的*表示數(shù)據(jù)實(shí)體可以在此位置出現(xiàn)0或多次。語法:<Gif 數(shù)據(jù)流> := 頭部 <邏輯視屏> <數(shù)據(jù)>* 尾記錄<邏輯視屏> := 邏輯視屏描述塊 全局色表<數(shù)據(jù)> := <成象塊> |<特殊用途塊><成象塊
4、> := 圖象控制擴(kuò)充 <成象塊><成象塊> := <基于表的圖象> |純文本擴(kuò)充<基于表的圖象> := 圖象描述符 局部色表 圖象數(shù)據(jù)<特殊用途塊> := 應(yīng)用擴(kuò)充 |注釋擴(kuò)充 gif數(shù)據(jù)流中的數(shù)據(jù)塊可以分為三組:控制塊、成象塊和特殊用途塊??刂茐K,如:頭部、邏輯視屏描述塊、圖像控制擴(kuò)充和尾記錄,包含用于控制處理數(shù)據(jù)流或設(shè)置硬件參數(shù)的信息。成像塊,如:圖像描述符和純文本擴(kuò)充,包含用于在顯示設(shè)備上成像的信息和數(shù)據(jù)。特殊用途塊,如:注釋擴(kuò)充和應(yīng)用擴(kuò)充,包含那些既不用于處理數(shù)據(jù)流也不用于在顯示設(shè)備上成象的信息。除了邏輯視屏
5、描述塊和全局色表之外,特殊用途塊的作用域是整個(gè)數(shù)據(jù)流,而其他控制塊的作用域是有限的,僅限于對他們后面的成象塊起作用。特殊用途塊不對任何控制塊構(gòu)成限制,它對于解碼過程來說是透明的。成象塊及擴(kuò)充用于控制塊及擴(kuò)充的作用域限定。塊的標(biāo)記分為三段:除尾記錄0x3b之外,0x000x7f用于成象塊;0x800xf9用于控制塊;0xfa0xff用于特殊用途塊。解碼器通過識別塊標(biāo)記來處理塊的作用域。 解釋:色表- gif格式利用色表來顯示基于光柵的圖像。色表分為全局色表和局部色表。全局色表對于那些沒有設(shè)置局部色表的圖像起作用。全局色表的作用域是整個(gè)數(shù)據(jù)流。局部色表對于緊接在其后的單張圖像起作用。這兩
6、種色表都是可選的。/*全局色表這東西是我們感興趣的東西,它有點(diǎn)像png格式定義種的調(diào)色板,如果要修改gif圖片的顏色,哈哈,修改這個(gè)全局色表就可以.如果有全局色表塊,那么它一定從gif流的14個(gè)字節(jié)開始(頭部6個(gè) + 邏輯視頻描述塊7個(gè))。*/ 以下是各數(shù)據(jù)塊的說明,如果注明為版本89a的話,則說明這個(gè)數(shù)據(jù)塊不會(huì)在87a版的協(xié)議中出現(xiàn). 頭部(6個(gè)字節(jié)) 標(biāo)識符(3 字節(jié)) -GIF &
7、#160; 版本(3 字節(jié)) -87a (or 89a) 邏輯視屏描述塊 邏輯屏幕寬(2字節(jié)) 邏輯屏幕高(2字節(jié))
8、60; Packed Fields (1字節(jié)) 背景色索引(1字節(jié)) 象素高寬比(1字節(jié))Packed Fields說明:全局色表標(biāo)志 1 Bit顏色方案 3 Bits短標(biāo)志 1 Bit全局色表尺寸 3 Bits解釋:
9、; 背景顏色索引 - 為背景顏色指向全局色表。背景顏色是指那些沒有背圖像覆蓋的視屏部分的顏色。若全局色表標(biāo)志位置為0,則該字段也被值0,并且被忽略。象素高寬比 - 用于計(jì)算原圖像中像素的近似高寬比。如果該字段的值為非0,則象素的高寬比由下面的公式計(jì)算:高寬比 = (象素高寬比 + 15) / 64該字段的取值范圍從最寬的比值4:1到最高的比值1:4,遞增的步幅為1/64。取值: 0 - 沒有比值,1255 - 用于計(jì)算的值。全局色表標(biāo)志 - 指示有沒有全局色表,如果該標(biāo)志位置
10、1,則全局色表會(huì)緊接在該塊之后出現(xiàn)。該位也用于解釋是否選用背景顏色索引字段。若該位置1,則背景顏色索引字段的值將指向背景顏色表。色彩方案 - 提供給原始圖像的每個(gè)顏色的位數(shù)減1。這個(gè)值代表圖像中所使用的整個(gè)調(diào)色板的大小,而不是圖像中所使用的顏色的數(shù)量。例如,若該字段的值為3,則圖像中所使用的調(diào)色板的每個(gè)色值占4位。短標(biāo)志 - 表明全局色表是否被排序。如果該位置1,則全局色表按照重要性遞減的原則進(jìn)行了排序。典型地,是按照顏色的使用頻度進(jìn)行遞減排序,使用頻度最高的顏色排在色表的最前面。這樣便可幫助解碼器選擇最好的顏色子集來成象。全局色表的尺寸 - 如果全局色表標(biāo)志位置1,則該字段的值記錄全局色表中
11、所占用的字節(jié)數(shù)。 全局色表該塊包含一個(gè)按照字節(jié)順序表示紅-綠-藍(lán)三元色的色表。全局色表用于那些沒有局部色表的圖像和純文本擴(kuò)充。在邏輯視屏描述塊中的全局色表標(biāo)志位置1時(shí)表示有全局色表。全局色表緊接在邏輯視屏描述塊之后,占用的字節(jié)數(shù)為:3*2(全局色表尺寸+1)數(shù)據(jù)組成格式為: Red 0
12、160; Green 0 Blue 0 Red n
13、0; Green n Blue n 圖像控制擴(kuò)充(版本-89a) 圖像控制擴(kuò)充包含在處理一個(gè)成象塊時(shí)所需的參數(shù)。擴(kuò)充只包括一個(gè)數(shù)據(jù)子塊。該塊是可選的。通常只有一個(gè)圖像控制擴(kuò)充在成象塊之前。這也是在一個(gè)數(shù)據(jù)流中對成象控制擴(kuò)充的唯一限制。數(shù)據(jù)組成格式為:
14、160; 擴(kuò)充導(dǎo)入符(1字節(jié))圖象控制標(biāo)記(1字節(jié))塊尺寸(1字節(jié))<Packed Fields>延長時(shí)間(2字節(jié))透明顏色索引(1字節(jié))塊結(jié)束(1字節(jié))Packed Fields說明:保留 3 Bits配置方法 3 Bits用戶輸入標(biāo)志 1 Bit透明顏色標(biāo)志 1 Bit解釋:擴(kuò)充引入 - 用于識別一個(gè)擴(kuò)充塊的開始,該字段為固定值0x21。圖像控制標(biāo)號 - 識別當(dāng)前塊是否為圖形控制擴(kuò)充。該字段為固定值 0xF9。塊尺寸 - 塊中所包含的字節(jié)數(shù)。從塊尺寸字段開始到快結(jié)束符(不含結(jié)束符)。該字段包含固定值4。配置方法 - 指示圖像顯示后的處理方法。值: 0 -
15、 無指定的配置,解碼器不需要做任何處理。1 - 不做配值。圖像將被留在原位置。2 - 恢復(fù)背景顏色。圖像所占的區(qū)域必須備恢復(fù)為背景顏色。3 - 恢復(fù)以前的顏色。解碼器需要將圖像區(qū)域恢復(fù)為原來成象的顏色。4-7 - 未定義。用戶輸入標(biāo)志 - 說明在繼續(xù)處理之前是否需要用戶輸入??梢院洼斎胙訒r(shí)一起使用。透明標(biāo)志 - 表明在透明索引字段是否給定透明索引。延時(shí) - 如果不為0, 該字段指定以1/100秒為單位的時(shí)延數(shù)。透明索引 - 如果遇到透明索引,則顯示設(shè)備的相關(guān)象素不被改變,繼續(xù)處理下一個(gè)象素。塊終止符 - 這個(gè)0長度字段標(biāo)志著圖像控制擴(kuò)充得結(jié)束。 圖像描述符每一幅圖像必須在邏輯視屏描述
16、塊中所定義的邏輯視屏界限之內(nèi)。圖像描述符包含處理一個(gè)基于圖像的表的必要參數(shù)。在這個(gè)塊中給定的坐標(biāo)是參照邏輯視屏的像素坐標(biāo)。該塊是一個(gè)成象塊,在其前面可以選擇加上一個(gè)或多個(gè)控制塊,如:圖像控制擴(kuò)充,或者是后面接有局部色表;圖像描述符后面總是圖像數(shù)據(jù)。它是一幅圖所必需的。一幅圖像對應(yīng)一個(gè)圖像描述符。數(shù)據(jù)組成格式為: 圖象分隔符(1字節(jié)) 圖象左坐標(biāo)(2字節(jié))
17、160; 圖象頂坐標(biāo)(2字節(jié)) 圖象寬度(2字節(jié)) 圖象高度(2字節(jié)) (2字節(jié)) <Packed Fields>(1字節(jié))Packed Fields說明:局部色表標(biāo)志
18、 1 Bit隔行處理標(biāo)志 1 Bit短標(biāo)志 1 Bit保留 2 Bits局部色表尺寸 3 Bits解釋:圖像分隔符 - 用于識別圖像描述符的開始。取固定值0x2c 局部色表該塊包含一個(gè)按照紅-綠-蘭三原色的順序排列的色表。該表作用于緊跟其后的圖像數(shù)據(jù)。當(dāng)局不色表標(biāo)志位置1時(shí),該表出現(xiàn),且其后緊跟圖像的描述符,它所包含的字節(jié)數(shù)等于3*2(局部色表尺寸+1)數(shù)據(jù)組成格式為: Red 0 &
19、#160; Green 0 Blue 0
20、60; Red n Green n Blue n基于表的圖像數(shù)據(jù)基于表的圖像數(shù)據(jù)由一系列子塊組成,每個(gè)子塊最多255字節(jié),包含一個(gè)為圖中每個(gè)象素所指定的有效色表的索引。索引的順序用LZW算法進(jìn)行編碼。數(shù)據(jù)組成格式為:
21、 LZW 最小編碼尺寸(1字節(jié)) 圖象數(shù)據(jù)數(shù)據(jù)子塊(n字節(jié))解釋:LZW 最小編碼尺寸:該字節(jié)用于決定在圖像數(shù)據(jù)中用 LZW 編碼最初的位數(shù)。 注釋擴(kuò)充(版本-89a)注釋擴(kuò)充包含實(shí)際不屬于gif數(shù)據(jù)流的文本信息。它適用于包括圖像注釋、描述或者任何其他非控制和非圖像數(shù)據(jù)。注釋擴(kuò)充將被解碼器忽略,或者被保留到以后處理。在任何情況下注釋擴(kuò)充也不能中斷對數(shù)據(jù)流的處理。該塊是可選的;在數(shù)據(jù)流中的出現(xiàn)量不加限制。數(shù)據(jù)組成格式為:
22、 擴(kuò)充導(dǎo)入符(1字節(jié)) 注釋標(biāo)記(1字節(jié)) 注釋數(shù)據(jù)數(shù)據(jù)子塊(n字節(jié))塊結(jié)束符(1字節(jié))解釋:擴(kuò)充導(dǎo)入符 - 標(biāo)識擴(kuò)充的開始。該字段為固定值0x21。注釋標(biāo)號 - 標(biāo)示某塊為注釋擴(kuò)充。該段為固定值0xFE。注釋數(shù)據(jù) - 按照子塊順序,每個(gè)注釋最少1字節(jié)最多255字節(jié)。序列結(jié)尾用塊結(jié)束符標(biāo)識。塊結(jié)束符 -用來標(biāo)識注釋擴(kuò)充的結(jié)束。 純文本擴(kuò)充(版本-89a)純文本擴(kuò)充包括純文本數(shù)據(jù)和將數(shù)據(jù)顯示為圖像所必需的參數(shù)。文本數(shù)據(jù)將用7位可印刷ASCII碼字符編碼。文本數(shù)據(jù)用在塊字段中定義的單元格字符元素來成象。每個(gè)字符用一個(gè)單元成象。該塊使用全局色表。它可以被圖形控制擴(kuò)充來修改。該塊為可選塊。數(shù)據(jù)組成格式為: 擴(kuò)充導(dǎo)入符(1字節(jié)) 純文本標(biāo)記(1字節(jié))塊尺寸(1字節(jié))文本格左坐標(biāo)(2字節(jié))文本格頂坐標(biāo)(2字節(jié))文本格寬度(2字節(jié))文本格高度(2字節(jié))字符單元寬度(1字節(jié))字符單元寬度(1字節(jié))文本前景色索引(1字節(jié))文本背景色索引(1字節(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年初中人教版《物理》九年級全一冊第十八章第二節(jié)“電功率”說課稿
- 3.2 熔化和凝固 說課稿 2025年初中人教版物理八年級上冊
- 共同購房協(xié)議書范本
- 學(xué)校戰(zhàn)略合作協(xié)議
- 物聯(lián)網(wǎng)居間協(xié)議
- 二零二五年度北京市化工原料寄存與倉儲環(huán)境監(jiān)測合同
- 地塊項(xiàng)目基坑工程 投標(biāo)方案(技術(shù)方案)
- 航空運(yùn)輸與服務(wù)系統(tǒng)作業(yè)指導(dǎo)書
- 三農(nóng)產(chǎn)品產(chǎn)銷對接網(wǎng)絡(luò)平臺建設(shè)方案
- 創(chuàng)業(yè)孵化基地入駐條件及運(yùn)營管理辦法匯編
- GB/T 7129-2001橡膠或塑料軟管容積膨脹的測定
- 市政綠化工程施工監(jiān)理要點(diǎn)
- 成品欄桿安裝施工方案
- JT∕T 1431.3-2022 公路機(jī)電設(shè)施用電設(shè)備能效等級及評定方法 第3部分:公路隧道照明系統(tǒng)
- 總包單位向各分包移交建筑一米線交接單
- 某隧道仰拱棧橋施工方案
- DB37∕T 5197-2021 公共建筑節(jié)能監(jiān)測系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 門診特定病種待遇認(rèn)定申請表
- 手衛(wèi)生知識培訓(xùn)PPT課件下載
- 鋼結(jié)構(gòu)設(shè)計(jì)總說明(新版)
- 碼頭基本建設(shè)程序?qū)徟鞒虉D
評論
0/150
提交評論