<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評(píng)論-202  文章-17  trackbacks-0
    6.2 GIF文件格式

    6.2.1 簡(jiǎn)介

    GIF(Graphics Interchange Format)是CompuServe公司開(kāi)發(fā)的圖像文件存儲(chǔ)格式,1987年開(kāi)發(fā)的GIF文件格式版本號(hào)是GIF87a,1989年進(jìn)行了擴(kuò)充,擴(kuò)充后的版本號(hào)定義為GIF89a。

    GFI圖像文件以數(shù)據(jù)塊(block)為單位來(lái)存儲(chǔ)圖像的相關(guān)信息。一個(gè)GIF文件由表示圖形/圖像的數(shù)據(jù)塊、數(shù)據(jù)子塊以及顯示圖形/圖像的控制信息塊組成,稱(chēng)為GIF數(shù)據(jù)流(Data Stream)。數(shù)據(jù)流中的所有控制信息塊和數(shù)據(jù)塊都必須在文件頭(Header)和文件結(jié)束塊(Trailer)之間。

    GIF文件格式采用了LZW(Lempel-Ziv Walch)壓縮算法來(lái)存儲(chǔ)圖像數(shù)據(jù),定義了允許用戶(hù)為圖像設(shè)置背景的透明(transparency)屬性。此外,GIF文件格式可在一個(gè)文件中存放多幅彩色圖形/圖像。如果在GIF文件中存放有多幅圖,它們可以像演幻燈片那樣顯示或者像動(dòng)畫(huà)那樣演示。

    6.2.2. 文件結(jié)構(gòu)

    GIF文件結(jié)構(gòu)的典型結(jié)構(gòu)如圖6-01所示。為下文說(shuō)明方便,在構(gòu)件左邊加了編號(hào)。

    1

    Header

     

    GIF文件頭

     

    2

    Logical Screen Descriptor

     

    邏輯屏幕描述塊

     

    3

    Global Color Table

     

    全局彩色表

     
     

    … 擴(kuò)展模塊(任選) …

         

    4

    Image Descriptor

     

    圖形描述塊

     

    5

    Local Color Table

     

    局部彩色表(可重復(fù)n次)

    6

    Table Based Image Data

     

    表式壓縮圖像數(shù)據(jù)

    7

    Graphic Control Extension

     

    圖像控制擴(kuò)展塊

    復(fù)

    8

    Plain Text Extension

     

    無(wú)格式文本擴(kuò)展塊

    n

    9

    Comment Extension

     

    注釋擴(kuò)展塊

    個(gè)

    10

    Applicaton Extension

     

    應(yīng)用程序擴(kuò)展塊

     
     

    … 擴(kuò)展模塊(任選) …

         

    11

    GIF Trailer

     

    GIF文件結(jié)束塊

     

    圖6-01 GIF文件結(jié)構(gòu)

    數(shù)據(jù)塊可分成3類(lèi):控制塊(Control Block),圖形描繪塊(Graphic-Rendering Block)和專(zhuān)用塊(Special Purpose Block)。

    (1) 控制塊:控制塊包含有用來(lái)控制數(shù)據(jù)流(Data Stream)或者設(shè)置硬件參數(shù)的信息,其成員包括:

    • GIF文件頭(Header)
    • 邏輯屏幕描述塊(Logical Screen Descriptor)
    • 圖形控制擴(kuò)展塊(Graphic Control Extension)
    • 文件結(jié)束塊(Trailer)

    (2) 圖形描繪塊:包含有用來(lái)描繪在顯示設(shè)備上顯示圖形的信息和數(shù)據(jù),其成員包括:

    • 圖像描述塊(Image Descriptor)
    • 無(wú)格式文本擴(kuò)展塊(Plain Text Extension)

    (3) 特殊用途數(shù)據(jù)塊;包含有與圖像處理無(wú)關(guān)的信息,其成員包括:

    • 注釋擴(kuò)展塊(Comment Extension)
    • 應(yīng)用擴(kuò)展塊(Application Extension)

    除了在控制塊中的邏輯屏幕描述塊(Logical Screen Descriptor)和全局彩色表(Global Color Table)的作用范圍是整個(gè)數(shù)據(jù)流(Data Stream)之外, 所有其他控制塊僅控制跟在它們后面的圖形描繪塊。

    6.2.3 構(gòu)件詳解

    1. GIF文件頭

    文件頭描述塊(Header)定義GIF數(shù)據(jù)流(GIF Data Stream),它的結(jié)構(gòu)如圖6-02所示。文件頭描述塊(Header)由GIF標(biāo)記域(Signature)和版本號(hào)(Version)域組成,是一個(gè)由6個(gè)固定字節(jié)組成的數(shù)據(jù)塊,它們用來(lái)說(shuō)明使用的文件格式是GIF格式及當(dāng)前所用的版本號(hào)。GIF標(biāo)記域(Signature)存放的是“GIF”,版本號(hào)域存放的是1987年5月發(fā)布的“87a”或者1989年7月發(fā)布的“89a”,或者更加新的版本號(hào)。

    7

    6

    5

    4

    3

    2

    1

    0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

     

    0

       

    Signature

    1

    GIF標(biāo)記

    3 Bytes

     

    2

       
     

    3

       

    Version

    4

    版本號(hào)

    3 Bytes

     

    5

       

    圖6-02 標(biāo)記/版本數(shù)據(jù)塊的結(jié)構(gòu)

     

    2. 邏輯屏幕描述塊

    邏輯屏幕描述塊(Logical Screen Descriptor)包含定義圖像顯示區(qū)域的參數(shù),包括背景顏色信息。這個(gè)數(shù)據(jù)塊中的坐標(biāo)相對(duì)于虛擬屏幕的左上角,不一定是指顯示屏的絕對(duì)坐標(biāo),這就意味可以參照窗口軟件環(huán)境下的窗口坐標(biāo)或者打印機(jī)坐標(biāo)來(lái)設(shè)計(jì)圖像顯示程序。邏輯屏幕描述塊的結(jié)構(gòu)如圖6-03所示:

    7

    6

    5

    4

    3

    2

    1

    0

    字節(jié)號(hào)

    域的名稱(chēng)

    類(lèi)型

    Logical Screen Width

    0

    邏輯屏幕寬度

    Unsigned

     

    1

    (以像素為定單位)

     

    Logical Screen Height

    2

    邏輯屏幕高度

    Unsigned

     

    3

    (以像素為定單位)

     

    G

    CR

    S

    Size

    4

    包裝域

    見(jiàn)圖6-04

    Background Color Index

    5

    背景顏色索引

    Byte

    Pixel Aspect Ratio

    6

    像素寬高比

    Byte

    圖6-03 屏幕描述塊的結(jié)構(gòu)

    邏輯描述塊包含7個(gè)字節(jié)。字節(jié)0和字節(jié)1用來(lái)說(shuō)明邏輯顯示屏的寬度,字節(jié)3和字節(jié)4用來(lái)說(shuō)明邏輯顯示屏的高度,字節(jié)4用來(lái)描述彩色表的屬性,字節(jié)5用來(lái)指定背景顏色索引,字節(jié)6用來(lái)計(jì)算像素的寬高比。現(xiàn)作如下說(shuō)明:

    (1) 屏幕描述塊中的第5個(gè)字節(jié)稱(chēng)為包裝域(Packed Fields),它的位結(jié)構(gòu)如圖6-04所示,它由4個(gè)子域組成:

    ① 全局彩色表標(biāo)志(Global Color Table Flag )域G用來(lái)說(shuō)明是否有全局彩色表存在。如果G=1,表示有一個(gè)全局彩色表(Global Color Table)將緊跟在這個(gè)邏輯屏幕描述塊(Logical Screen Descriptor)之后;這個(gè)標(biāo)志也用來(lái)選擇背景顏色索引(Background Color Index)。如果G=1,背景顏色索引(Background Color Index)域中的值就用作背景顏色的索引。

    ② 彩色分辨率(Color Resolution)域CR用來(lái)表示原始圖像可用的每種基色的位數(shù)(實(shí)際值減1)。這個(gè)位數(shù)表示整個(gè)調(diào)色板的大小,而不是這幅圖像使用的實(shí)際的顏色數(shù)。例如,如果該域的值CR=3,說(shuō)明原始圖像可用每個(gè)基色有4位的調(diào)色板來(lái)生成彩色圖像。

    ③ 彩色表排序標(biāo)志(Sort Flag)域S用來(lái)表示全局彩色表(Global Color Table)中的顏色是否按重要性(或者稱(chēng)使用率)排序。如果S=0,表示沒(méi)有重要性排序;如果S=1表示最重要的顏色排在前。這樣做的目的是輔助顏色數(shù)比較少的解碼器能夠選擇最好的顏色子集,在這種情況下解碼器就可選擇彩色表中開(kāi)始段的彩色來(lái)顯示圖像。

    ④ 全局彩色表大小(Size of Global Color Table)域Size表示表示每個(gè)像素的位數(shù),它用來(lái)計(jì)算全局彩色表(Global Color Table)中包含的字節(jié)數(shù)。在全局彩色表標(biāo)志(Global Color Table Flag)域G=0時(shí)就不需要計(jì)算,G=1時(shí)就要計(jì)算彩色表的大小,具體計(jì)算見(jiàn)下文的“3. 全局彩色表”

    7

    6

    5

    4

    3

    2

    1

    0

    Global Color Table Flag

    Color Resolution

    Sort Flag

    Size of Global Color Table

    圖6-04 邏輯屏幕描述塊中的包裝域結(jié)構(gòu)

    (2) 屏幕描述塊中的第6個(gè)字節(jié)是背景顏色索引(Background Color Index),它是彩色表的一個(gè)索引值,用來(lái)指定背景顏色。如果全局彩色表標(biāo)志(Global Color Table Flag)域G=0,這個(gè)域的值也設(shè)置為0。

    (3) 像素寬高比(Pixel Aspect Ratio)域中的值是一個(gè)因數(shù),是計(jì)算原始圖像像素的寬高比的一個(gè)近似值。如果該域的值范圍為1~255,如果不等于0,寬高比的近似值按下式計(jì)算:

    Aspect Ratio = (Pixel Aspect Ratio + 15) / 64
    像素寬高比(Pixel Aspect Ratio)定義成像素的寬度與高度之比,比值的范圍在4:1~1:4之間,其增量為1/64。

    3. 全局彩色表

    由于一個(gè)GIF文件可以包含多幅彩色圖像,每幅彩色圖像也許都包含適合自身特點(diǎn)的彩色表,所以一個(gè)GIF文件可以有好幾個(gè)彩色表。但歸納起來(lái)只有兩類(lèi):全局彩色表(Global Color Table)或局部彩色表(Local Color Table)。全局彩色表可用于圖像本身沒(méi)有帶彩色表的所有圖像和無(wú)格式文本擴(kuò)展塊(Plain Text Extension),而局部彩色表只用于緊跟在它后面的一幅圖像。在處理全局彩色表和局部彩色表時(shí)需要注意下面一些規(guī)則。

    ① 如果GIF文件包含全局彩色表(Global Color Table),而且要顯示的圖像本身又帶有局部彩色表,那末顯示該幅彩色圖像時(shí)就用它自己的彩色表,而不用全局彩色表。在這種情況下,解碼器就首先保存全局彩色表(Global Color Table),然后使用局部彩色表(Local Color Table)來(lái)顯示圖像,最后再回復(fù)全局彩色表(Global Color Table)。

    ② 全局彩色表(Global Color Table)和局部彩色表(Local Color Table)都是可選擇的。由于這個(gè)原因,解碼器最好要保存全局彩色表(Global Color Table),一直到出現(xiàn)另一個(gè)全局彩色表(Global Color Table)為止。這樣做之后,對(duì)于包含完全沒(méi)有彩色表的一幅或者多幅彩色圖像的GIF文件就可以使用最后保存的全局彩色表(Global Color Table)進(jìn)行處理。

    ③ 如果同類(lèi)型的圖像能夠使用相同的彩色表來(lái)顯示,編碼器就要盡可能使用一個(gè)全局彩色表(Global Color Table);如果沒(méi)有彩色表可用,解碼器就可以使用計(jì)算機(jī)系統(tǒng)提供的彩色表或者解碼器自身的彩色表。

    ④ 全局彩色表(Global Color Table)存在與否由邏輯屏幕描述塊(Logical Screen Descriptor)中字節(jié)5的全局彩色表標(biāo)志(Global Color Table Flag )域G的值確定。如果存在,彩色表就緊跟在邏輯屏幕描述塊(Logical Screen Descriptor)之后。彩色表的表項(xiàng)數(shù)目等于2(n +1),其中n=b2b1b0,每個(gè)表項(xiàng)由3個(gè)字節(jié)組成,分別代表R、G、B的相對(duì)強(qiáng)度,因此彩色表的字節(jié)數(shù)就等于3×2(n +1)。彩色表的結(jié)構(gòu)如圖6-05所示。

    7 6 5 4 3 2 1 0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    red intensity

    0

    紅色索引 000

    Byte

    green intensity

    1

    綠色索引 000

    Byte

    blue intensity

    2

    藍(lán)色索引 000

    Byte

    red intensity

    3

    紅色索引 001

    Byte

    green intensity

    4

    綠色索引 001

    Byte

    blue intensity

    5

    藍(lán)色索引 001

    Byte

     

     

    red intensity

    745

    紅色索引 255

    Byte

    green intensity

    746

    綠色索引 255

    Byte

    blue intensity

    767

    藍(lán)色索引 255

    Byte

    圖6-05 彩色表結(jié)構(gòu)

    局部彩色表與全局彩色表有相同的存儲(chǔ)格式。

    4. 圖像描述塊

    GIF圖像文件格式可包含數(shù)量不限的圖像,而且也沒(méi)有一個(gè)固定的存放順序,僅用一個(gè)字節(jié)的圖像分隔符(Image Separator)來(lái)判斷是不是圖像描述塊。每一幅圖像都由一個(gè)圖像描述塊(Image Descriptor)、可有可無(wú)的局部彩色表(Local Color Table)和圖像數(shù)據(jù)組成。每幅圖像必須要落在邏輯屏幕描述塊(Logical Screen Descriptor)中定義的邏輯屏(Logical Screen)尺寸范圍里。

    圖像描述塊(Image Descriptor)之前可以有一個(gè)或者多個(gè)控制塊,例如圖形控制擴(kuò)展塊(Graphic Control Extension),其后可以跟著一個(gè)局部彩色表(Local Color Table)。無(wú)論前后是否有各種數(shù)據(jù)塊,圖像描述塊(Image Descriptor)總是帶有圖像數(shù)據(jù)。

    圖像描述塊(Image Descriptor)的結(jié)構(gòu)如圖6-06所示。

    7

    6

    5

    4

    3

    2

    1

    0

    字節(jié)號(hào)

    域的名稱(chēng)

    類(lèi)型

    Image Separator

    0

    圖像分隔符

    Byte

    Image Left Position

    1

    圖像左邊位置

    Unsigned

     

    2

    (以像素為定單位)

     

    Image Top Position

    3

    圖像頂部位置

    Unsigned

     

    4

    (以像素為定單位)

     

    Image Width

    5

    圖像寬度

    Unsigned

     

    6

    (以像素為定單位)

     

    Image Height

    7

    圖像高度

    Unsigned

     

    8

    (以像素為定單位)

     
     

    9

    包裝域

    見(jiàn)圖6-07

    圖6-06 圖像描述塊的結(jié)構(gòu)

    在圖6-06中,圖像分隔符(Image Separator)用來(lái)標(biāo)識(shí)圖像描述塊的開(kāi)始,該域包含固定的值:0x2C;圖像左邊位置(Image Left Position)是相對(duì)于邏輯屏幕(Logical Screen)最左邊的列號(hào),邏輯屏幕最左邊的列好定義為0;圖像頂部位置(Image Top Position) 是相對(duì)于邏輯屏幕(Logical Screen)頂部的行號(hào),邏輯屏幕頂部的行號(hào)定義為0。

    7

    6

    5

    4

    3

    2

    1

    0

    Local Color Table Flag

    Interlace Flag

    Sort Flag

    Reserved

    Size of Local Color Table

    圖6-07 圖像描述塊中的包裝域結(jié)構(gòu)

    圖像描述塊(Image Descriptor)中的第9個(gè)字節(jié)稱(chēng)為包裝域(Packed Fields)字節(jié),它的位結(jié)構(gòu)如圖6-07所示,它由5個(gè)子域組成:

    ① 局部彩色表標(biāo)志(Local Color Table Flag )域L用來(lái)說(shuō)明是否有局部彩色表存在。如果L=1,表示有一個(gè)局部彩色表(Local Color Table)將緊跟在這個(gè)圖像描述塊(Image Descriptor)之后;如果G=0,表示圖像描述塊(Image Descriptor)后面沒(méi)有局部彩色表(Local Color Table),該圖像要使用全局彩色表(Global Color Table)。

    ② 交插顯示標(biāo)志(Interlace Flag)域I用來(lái)表示該圖像是不是交插圖像(Interlaced Images)。如果I=0,表示該圖像不是交插圖像,如果I=1表示該圖像是交插圖像。使用該位標(biāo)志可知道圖像數(shù)據(jù)是如何存放的。GIF文件格式定義了兩種數(shù)據(jù)存儲(chǔ)方式:一種是按圖像行連續(xù)順序存儲(chǔ),這個(gè)順序與顯示器上顯示行的順序相同;另一種按交插方式存儲(chǔ)。交插圖像按行分成如下所示的4組(Group):

    Group 1:每隔8行組成一組,從第0行開(kāi)始顯示 /第1遍交插

    Group 2:每隔8行組成一組,從第4行開(kāi)始顯示 /第2遍交插

    Group 3:每隔4行組成一組,從第2行開(kāi)始顯示 /第3遍交插

    Group 4:每隔2行組成一組,從第1行開(kāi)始顯示 /第4遍交插

    由于顯示圖像需要較長(zhǎng)的時(shí)間,使用這種方法存放和顯示圖像數(shù)據(jù),人們就可以在圖像顯示完成之前看到這幅圖像的概貌,而不覺(jué)得顯示時(shí)間長(zhǎng)。圖6-08說(shuō)明了這種交插圖像的存儲(chǔ)和顯示順序。

    行號(hào)

    像 點(diǎn)

    交插遍次

    0

    ……………………………………

    1

         

    1

    ……………………………………

         

    4

    2

    ……………………………………

       

    3

     

    3

    ……………………………………

         

    4

    4

    ……………………………………

     

    2

       

    5

    ……………………………………

         

    4

    6

    ……………………………………

       

    3

     

    7

    ……………………………………

         

    4

    8

    ……………………………………

    1

         

    9

    ……………………………………

         

    4

    10

    ……………………………………

       

    3

     

    11

    ……………………………………

         

    4

    12

    ……………………………………

     

    2

       

    13

    ……………………………………

         

    4

    14

    ……………………………………

       

    3

     

    15

    ……………………………………

         

    4

    16

    ……………………………………

    1

         

    17

    ……………………………………

         

    4

    18

    ……………………………………

       

    3

     

    19

    ……………………………………

         

    4

    圖6-08 交插圖像顯示順序

    ③ 彩色表排序標(biāo)志(Sort Flag)域的含義與全局彩色表(Global Color Table)中(Sort Flag)域的含義相同。

    ④ 保留(Reserved)。

    ⑤ 局部彩色表大小(Size of Local Color Table)域的值用來(lái)計(jì)算局部彩色表(Global Color Table)中包含的字節(jié)數(shù)。

    5. 局部彩色表

    局部彩色表(Local Color Table)用于緊跟在它后面的圖像。彩色表是否存在取決于圖像描述塊(Image Descriptor)中局部彩色表標(biāo)志(Local Color Table Flag)位的設(shè)置。彩色表的結(jié)構(gòu)和大小與全局彩色表(Global Color Table)完全相同。

    6. 表基圖像數(shù)據(jù)

    GIF圖像采用了LZW算法對(duì)實(shí)際的圖像數(shù)據(jù)進(jìn)行壓縮。為了提高壓縮編碼的效率,對(duì)LZW編碼器輸出的代碼采用可變長(zhǎng)度碼VLC(variable-length-code),不是用位數(shù)高度的代碼來(lái)表示輸出,而且代表碼字的位數(shù)是可變的。

    表基圖像數(shù)據(jù)(Table Based Image Data)由LZW最小代碼長(zhǎng)度(LZW Minimum Code Size)和圖像數(shù)據(jù)(Image Data)組成,如圖6-09所示。LZW最小代碼長(zhǎng)度域的值用來(lái)確定圖像數(shù)據(jù)中LZW代碼使用的初始位數(shù)。圖像數(shù)據(jù)(Image Data)由數(shù)據(jù)子塊(Data Sub-blocks)序列組成。

    7

    6

    5

    4

    3

    2

    1

    0

     

    域的名稱(chēng)

    類(lèi)型

    LZW Minimum Code Size

     

    LZW最小代碼長(zhǎng)度

    Byte

    Image Data

     

    圖像數(shù)據(jù)

    Data
    Sub-blocks

    圖6-09 圖像數(shù)據(jù)的存儲(chǔ)格式

    數(shù)據(jù)子塊(Data Sub-blocks)的結(jié)構(gòu)如圖6-10所示,這是一個(gè)可變長(zhǎng)度的數(shù)據(jù)塊,其長(zhǎng)度由塊大小域(Block Size)域中的值確定,字節(jié)數(shù)在0~255之間。

    7 6 5 4 3 2 1 0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    Block Size

    0

    塊大小

    Byte

     

    1

     

    Byte

         

    Byte

    Data Values

     

    數(shù)值

    Byte

         

    Byte

     

     

     

     

         

    Byte

     

     

    Byte

     

     

    Byte

     

    255

     

    Byte

    圖6-10 數(shù)據(jù)子塊的結(jié)構(gòu)

     

    7. 圖形控制擴(kuò)展塊

    圖形控制擴(kuò)展塊(Graphic Control Extension)包含處理圖形描繪塊時(shí)要使用的參數(shù),它的結(jié)構(gòu)如圖6-11所示。現(xiàn)說(shuō)明如下:

    (1) 擴(kuò)展導(dǎo)入符Extension Introducer)用于識(shí)別擴(kuò)展塊的開(kāi)始,域中的值是一個(gè)數(shù)值等于0x21的固定值。

    (2) 圖形控制標(biāo)簽(Graphic Control Label)用于標(biāo)識(shí)當(dāng)前塊是一個(gè)圖形控制擴(kuò)展塊,域中的值是一個(gè)數(shù)值等于0xF9的固定值。

    (3) 塊大小(Block Size)用來(lái)說(shuō)明該擴(kuò)展塊所包含字節(jié)數(shù),該字節(jié)數(shù)是從這個(gè)塊大小(Block Size)域之后到塊結(jié)束符之間的字節(jié)數(shù)。

    7

    6

    5

    4

    3

    2

    1

    0

    字節(jié)號(hào)

    域的名稱(chēng)

    類(lèi)型

    Extension Introducer

    0

    擴(kuò)展導(dǎo)入符

    Byte

    Graphic Control Label

    1

    圖形擴(kuò)展標(biāo)簽

    Byte

           

    Block Size

    0

    塊大小

    Byte

    <Packed Fields>

    1

    包裝域

    See below

    Delay Time

    2

    延時(shí)時(shí)間

    Unsigned

           

    Transparent Color Index

    3

    透明彩色索引

    Byte

           

    Block Terminator

    0

    塊結(jié)束符

    Byte

    圖6-11 圖像描述塊的結(jié)構(gòu)

    (4) 包裝域的結(jié)構(gòu)如圖6-12所示。處理方法(Disposal Method)規(guī)定圖形顯示之后譯碼器要用表6-03中所述方法進(jìn)行處理。

    表6-03 包裝域規(guī)定的處理方法

    域值

    處理方法

    0

    沒(méi)有指定要做任何處理

    1

    不處理,圖形留在原處

    2

    顯示圖形的區(qū)域必須要恢復(fù)成背景顏色

    3

    恢復(fù)成以前顯示的圖形

    4~7

    (未定義)

    用戶(hù)輸入標(biāo)志(User Input Flag)域表示在繼續(xù)處理之前是否需要用戶(hù)輸入響應(yīng)。在延時(shí)時(shí)間(Delay Time)和用戶(hù)輸入標(biāo)志(User Input Flag)都設(shè)置為1的情況下,繼續(xù)處理的開(kāi)始時(shí)間取決于用戶(hù)響應(yīng)輸入在前還是延時(shí)時(shí)間結(jié)束在前。

    7

    6

    5

    4

    3

    2

    1

    0

    Reserved(保留)

    Disposal Method(處理方法)

    User Input Flag

    Transparent Color Flag

    圖6-12 圖形控制擴(kuò)展塊的包裝結(jié)構(gòu)

    (5) 透明(Transparency Flag)表示是否給出透明索引(transparency index)

    (6) 延時(shí)時(shí)間(Delay Time)用來(lái)指定在圖形顯示之后繼續(xù)處理數(shù)據(jù)流之前的等待時(shí)間,一百分之一秒為單位。

    (7) 當(dāng)且僅當(dāng)透明標(biāo)志位設(shè)置為1時(shí),透明索引(Transparency Index)用來(lái)指示處理程序是否要修改顯示設(shè)備上的相應(yīng)象點(diǎn)。當(dāng)且僅當(dāng)透明標(biāo)志位設(shè)置為1時(shí),就要修改。

    (8) 塊結(jié)束符(Block Terminator)表示該圖形控制擴(kuò)展塊(Graphic Control Extension)結(jié)束,它是由一個(gè)字節(jié)組成的數(shù)據(jù)塊,該域的值是一個(gè)固定的值:0x00,因此稱(chēng)為零長(zhǎng)度數(shù)據(jù)子塊(zero-length Data Sub-block)。

    8. 無(wú)格式文本擴(kuò)展塊

    無(wú)格式文本擴(kuò)展塊(Plain Text Extension)包含文本數(shù)據(jù)和描繪文本所須的參數(shù)。文本數(shù)據(jù)用7位的ASCII字符編碼并以圖形形式顯示。擴(kuò)展塊的結(jié)構(gòu)如圖6-13所示。

    7 6 5 4 3 2 1 0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    Extension Introducer (0x21)

    0

    擴(kuò)展導(dǎo)入符

    Byte

    Plain Text Label (0x01)

    1

    無(wú)格式文本標(biāo)簽

    Byte

    Block Size

    0

    塊大小

    Byte

    Text Grid Left Position

    1

    文本網(wǎng)格左列位置

    Unsigned

     

    2

       

    Text Grid Top Position

    3

    文本網(wǎng)格頂行位置

    Unsigned

     

    4

       

    Text Grid Width

    5

    文本網(wǎng)格寬度

    Unsigned

     

    6

       

    Text Grid Height

    7

    文本網(wǎng)格高度

    Unsigned

     

    8

       

    Character Cell Width

    9

    字符單元寬度

    Byte

    Character Cell Height

    10

    字符單元高度

    Byte

    Text Foreground Color Index

    11

    文本顏色索引

    Byte

    Text Background Color Index

    12

    文本背景顏色索引

    Byte

           

    Plain Text Data

     

    無(wú)格式文本數(shù)據(jù)

    Data Sub-blocks

           

    圖6-13 無(wú)格式文本擴(kuò)展塊結(jié)構(gòu)

     

    9. 注釋擴(kuò)展塊

    注釋擴(kuò)展塊(Comment Extension)域的內(nèi)容用來(lái)說(shuō)明圖形、作者或者其他任何非圖形數(shù)據(jù)和控制信息的文本信息。

    注釋擴(kuò)展塊的結(jié)構(gòu)如圖6-14所示。其中的注釋數(shù)據(jù)是序列數(shù)據(jù)子塊(Data Sub-blocks),每塊最多255個(gè)字節(jié),最少1個(gè)字節(jié)。

    7 6 5 4 3 2 1 0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    Extension Introducer (0x21)

    0

    擴(kuò)展導(dǎo)入符

    Byte

    Comment Label (0xFE)

    1

    注釋標(biāo)簽

    Byte

    Comment Data

    0

    注釋數(shù)據(jù)

     
         

    Data Sub-blocks

     

       
     

    N-1

       

    Block Terminator

     

    塊結(jié)束符

    Byte

    圖6-14 注釋擴(kuò)展塊

     

    10. 應(yīng)用擴(kuò)展塊

    應(yīng)用擴(kuò)展塊(Application Extension)包含制作該圖像文件的應(yīng)用程序的相關(guān)信息,它的結(jié)構(gòu)如圖6-15所示。

    7 6 5 4 3 2 1 0

    字節(jié)號(hào)

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    Extension Introducer (0x21)

    0

    擴(kuò)展導(dǎo)入符

    Byte

    Extension Label (0xFF)

    1

    擴(kuò)展標(biāo)簽

    Byte

    Block Size

    0

    塊大小

    Byte

     

    1

       
     

    2

       
     

    3

       

    Application Identifier

    4

    應(yīng)用程序標(biāo)識(shí)符

    8 Bytes

     

    5

    (程序名稱(chēng))

     
     

    6

       
     

    7

       
     

    8

       
     

    9

       

    Appl. Authentication Code

    10

    應(yīng)用程序識(shí)別碼

    3 Bytes

     

    11

       

           

    Application Data

     

    應(yīng)用數(shù)據(jù)

    Data Sub-blocks

           

    Block Terminator

    0

     

    Byte

    圖6-15 應(yīng)用擴(kuò)展塊

     

    11. GIF文件結(jié)束塊

    結(jié)束塊(GIF Trailer)表示GIF文件的結(jié)尾,它包含一個(gè)固定的數(shù)值:0x3B。它具有如圖6-16所示的結(jié)構(gòu)。

    7 6 5 4 3 2 1 0

    域的名稱(chēng)

    數(shù)據(jù)類(lèi)型

    GIF Trailer = 0x3B

    GFI文件結(jié)束塊

    Byte

    圖6-16 GIF文件結(jié)束塊

    6.2.4 速差表

    表6-04 GIF文件格式

    塊的名稱(chēng)

    需要

    標(biāo)簽

    擴(kuò)展

    版本號(hào).

    Application Extension(應(yīng)用擴(kuò)展)

    Opt. (*)

    0xFF (255)

    yes

    89a

    Comment Extension(注釋擴(kuò)展)

    Opt. (*)

    0xFE (254)

    yes

    89a

    Global Color Table(全局彩色表)

    Opt. (1)

    none

    no

    87a

    Graphic Control Extension(圖形控制擴(kuò)展)

    Opt. (*)

    0xF9 (249)

    yes

    89a

    Header(文件頭)

    Req. (1)

    none

    no

    N/A

    Image Descriptor(圖像描述)

    Opt. (*)

    0x2C (044)

    no

    87a (89a)

    Local Color Table(局部彩色表)

    Opt. (*)

    none

    no

    87a

    Logical Screen Descriptor(邏輯屏幕描述塊)

    Req. (1)

    none

    no

    87a (89a)

    Plain Text Extension(無(wú)格式文本擴(kuò)展)

    Opt. (*)

    0x01 (001)

    yes

    89a

    Trailer(文件結(jié)束)

    Req. (1)

    0x3B (059)

    no

    87a

    Unlabeled Blocks(無(wú)標(biāo)號(hào)塊)

    Header(文件頭)

    Req. (1)

    none

    no

    N/A

    Logical Screen Descriptor(邏輯屏幕描述塊)

    Req. (1)

    none

    no

    87a (89a)

    Global Color Table(全局彩色表)

    Opt. (1)

    none

    no

    87a

    Local Color Table(局部彩色表)

    Opt. (*)

    none

    no

    87a

    Graphic-Rendering Blocks(圖像描繪塊)

    Plain Text Extension(無(wú)格式文本擴(kuò)展)

    Opt. (*)

    0x01 (001)

    yes

    89a

    Image Descriptor(圖像描述塊)

    Opt. (*)

    0x2C (044)

    no

    87a (89a)

    Control Blocks(控制塊)

    Graphic Control Extension(圖形控制擴(kuò)展)

    Opt. (*)

    0xF9 (249)

    yes

    89a

    Special Purpose Blocks(專(zhuān)用塊)

    Trailer(結(jié)束)

    Req. (1)

    0x3B (059)

    no

    87a

    Comment Extension(注釋擴(kuò)展)

    Opt. (*)

    0xFE (254)

    yes

    89a

    Application Extension(應(yīng)用程序擴(kuò)展)

    Opt. (*)

    0xFF (255)

    yes

    89a

    表中:Req. (1) 表示最多出現(xiàn)一次

    Opt. (*) 出現(xiàn)次數(shù)大于等于0

    posted on 2005-06-22 16:52 小米 閱讀(6972) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 其它

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产精品日韩在线| 亚洲午夜无码毛片av久久京东热| 亚洲综合av一区二区三区不卡 | 亚洲一区在线免费观看| 美女被羞羞网站免费下载| 9420免费高清在线视频| 精品亚洲成a人在线观看| A片在线免费观看| 成人免费视频88| 亚洲国产精品福利片在线观看 | 亚洲七久久之综合七久久| 久久久精品视频免费观看 | 亚洲好看的理论片电影| 羞羞视频免费网站入口| 最近中文字幕免费2019| 亚洲无码高清在线观看| 2020天堂在线亚洲精品专区| 99久久婷婷免费国产综合精品| 处破痛哭A√18成年片免费| 亚洲AV日韩AV永久无码久久| 亚洲AV日韩AV一区二区三曲 | 69免费视频大片| 亚洲人成影院在线观看| 亚洲一日韩欧美中文字幕在线| 嫩草影院在线播放www免费观看| 日本高清免费aaaaa大片视频| 免费大黄网站在线看| 亚洲理论片在线观看| 中文字幕乱码免费看电影| 国产在线观看免费不卡| 亚洲免费视频播放| 日本免费污片中国特一级| 亚洲女同成人AⅤ人片在线观看| 亚洲色欲色欲www在线播放| 99久久国产免费中文无字幕| 亚洲一级Av无码毛片久久精品| 亚洲欧美日韩综合久久久久| 亚洲高清免费在线观看| 亚洲av无码一区二区乱子伦as| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲成人免费在线|