<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.4 PNG格式

    6.4.1 簡(jiǎn)介

    PNG是20世紀(jì)90年代中期開始開發(fā)的圖像文件存儲(chǔ)格式,其目的是企圖替代GIF和TIFF文件格式,同時(shí)增加一些GIF文件格式所不具備的特性。流式網(wǎng)絡(luò)圖形格式(Portable Network Graphic Format,PNG)名稱來源于非官方的“PNG's Not GIF”,是一種位圖文件(bitmap file)存儲(chǔ)格式,讀成“ping”。PNG用來存儲(chǔ)灰度圖像時(shí),灰度圖像的深度可多到16位,存儲(chǔ)彩色圖像時(shí),彩色圖像的深度可多到48位,并且還可存儲(chǔ)多到16位的α通道數(shù)據(jù)。PNG使用從LZ77派生的無損數(shù)據(jù)壓縮算法。

    PNG文件格式保留GIF文件格式的下列特性:

    1. 使用彩色查找表或者叫做調(diào)色板可支持256種顏色的彩色圖像。
    2. 流式讀/寫性能(streamability):圖像文件格式允許連續(xù)讀出和寫入圖像數(shù)據(jù),這個(gè)特性很適合于在通信過程中生成和顯示圖像。
    3. 逐次逼近顯示(progressive display):這種特性可使在通信鏈路上傳輸圖像文件的同時(shí)就在終端上顯示圖像,把整個(gè)輪廓顯示出來之后逐步顯示圖像的細(xì)節(jié),也就是先用低分辨率顯示圖像,然后逐步提高它的分辨率。
    4. 透明性(transparency):這個(gè)性能可使圖像中某些部分不顯示出來,用來創(chuàng)建一些有特色的圖像。
    5. 輔助信息(ancillary information):這個(gè)特性可用來在圖像文件中存儲(chǔ)一些文本注釋信息。
    6. 獨(dú)立于計(jì)算機(jī)軟硬件環(huán)境。
    7. 使用無損壓縮。

    PNG文件格式中要增加下列GIF文件格式所沒有的特性:

    1. 每個(gè)像素為48位的真彩色圖像。
    2. 每個(gè)像素為16位的灰度圖像。
    3. 可為灰度圖和真彩色圖添加α通道。
    4. 添加圖像的γ信息。
    5. 使用循環(huán)冗余碼(cyclic redundancy code,CRC)檢測(cè)損害的文件。
    6. 加快圖像顯示的逐次逼近顯示方式。
    7. 標(biāo)準(zhǔn)的讀/寫工具包。
    8. 可在一個(gè)文件中存儲(chǔ)多幅圖像。

    6.4.2 文件結(jié)構(gòu)

    PNG圖像格式文件(或者稱為數(shù)據(jù)流)由一個(gè)8字節(jié)的PNG文件署名(PNG file signature)域和按照特定結(jié)構(gòu)組織的3個(gè)以上的數(shù)據(jù)塊(chunk)組成。

    PNG定義了兩種類型的數(shù)據(jù)塊,一種是稱為關(guān)鍵數(shù)據(jù)塊(critical chunk),這是標(biāo)準(zhǔn)的數(shù)據(jù)塊,另一種叫做輔助數(shù)據(jù)塊(ancillary chunks),這是可選的數(shù)據(jù)塊。關(guān)鍵數(shù)據(jù)塊定義了4個(gè)標(biāo)準(zhǔn)數(shù)據(jù)塊,每個(gè)PNG文件都必須包含它們,PNG讀寫軟件也都必須要支持這些數(shù)據(jù)塊。雖然PNG文件規(guī)范沒有要求PNG編譯碼器對(duì)可選數(shù)據(jù)塊進(jìn)行編碼和譯碼,但規(guī)范提倡支持可選數(shù)據(jù)塊。

    (1) PNG文件署名域

    8字節(jié)的PNG文件署名域用來識(shí)別該文件是不是PNG文件。該域的值是:

    十進(jìn)制數(shù)

    137

    80

    78

    71

    13

    10

    26

    10

    十六進(jìn)制數(shù)

    89

    50

    4e

    47

    0d

    0a

    1a

    0a

     

    (2) 數(shù)據(jù)塊的結(jié)構(gòu)

    每個(gè)數(shù)據(jù)塊都由表6-07所示的的4個(gè)域組成。

    表6-07 PNG文件數(shù)據(jù)塊的結(jié)構(gòu)

    名稱

    字節(jié)數(shù)

    說明

    Length(長(zhǎng)度)

    4字節(jié)

    指定數(shù)據(jù)塊中數(shù)據(jù)域的長(zhǎng)度,其長(zhǎng)度不超過
    (231-1)字節(jié)

    Chunk Type Code(數(shù)據(jù)塊類型碼)

    4字節(jié)

    數(shù)據(jù)塊類型碼由ASCII字母(A-Z和a-z)組成

    Chunk Data(數(shù)據(jù)塊數(shù)據(jù))

    可變長(zhǎng)度

    存儲(chǔ)按照Chunk Type Code指定的數(shù)據(jù)

    CRC(循環(huán)冗余檢測(cè))

    4字節(jié)

    存儲(chǔ)用來檢測(cè)是否有錯(cuò)誤的循環(huán)冗余碼

    在表6-07中,CRC(cyclic redundancy check)域中的值是對(duì)Chunk Type Code域和Chunk Data域中的數(shù)據(jù)進(jìn)行計(jì)算得到的。CRC具體算法定義在ISO 3309和ITU-T V.42中,其值按下面的CRC碼生成多項(xiàng)式進(jìn)行計(jì)算:

    x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

    6.4.3 數(shù)據(jù)塊結(jié)構(gòu)

    1. 關(guān)鍵數(shù)據(jù)塊

    關(guān)鍵數(shù)據(jù)塊中的4個(gè)標(biāo)準(zhǔn)數(shù)據(jù)塊是:

    (1) 文件頭數(shù)據(jù)塊IHDR(header chunk):它包含有PNG文件中存儲(chǔ)的圖像數(shù)據(jù)的基本信息,并要作為第一個(gè)數(shù)據(jù)塊出現(xiàn)在PNG數(shù)據(jù)流中,而且一個(gè)PNG數(shù)據(jù)流中只能有一個(gè)文件頭數(shù)據(jù)塊。

    文件頭數(shù)據(jù)塊由13字節(jié)組成,它的格式如表6-08所示。

    表6-08 PNG文件頭鍵數(shù)據(jù)塊的結(jié)構(gòu)

    域的名稱

    字節(jié)數(shù)

    說明

    Width

    4 bytes

    圖像寬度,以像素為單位

    Height

    4 bytes

    圖像高度,以像素為單位

    Bit depth

    1 byte

    圖像深度:
    索引彩色圖像:1,2,4或8
    灰度圖像:1,2,4,8或16
    真彩色圖像:8或16

    ColorType

    1 byte

    顏色類型:
    0:灰度圖像, 1,2,4,8或16
    2:真彩色圖像,8或16
    3:索引彩色圖像,1,2,4或8

    4:帶α通道數(shù)據(jù)的灰度圖像,8或16
    6:帶α通道數(shù)據(jù)的真彩色圖像,8或16

    Compression method

    1 byte

    壓縮方法(LZ77派生算法)

    Filter method

    1 byte

    濾波器方法

    Interlace method

    1 byte

    隔行掃描方法:

    0:非隔行掃描

    1: Adam7(由Adam M. Costello開發(fā)的7
    遍隔行掃描方法)

    (2) 調(diào)色板數(shù)據(jù)塊PLTE(palette chunk):它包含有與索引彩色圖像((indexed-color image))相關(guān)的彩色變換數(shù)據(jù),它僅與索引彩色圖像有關(guān),而且要放在圖像數(shù)據(jù)塊(image data chunk)之前。真彩色的PNG數(shù)據(jù)流也可以有調(diào)色板數(shù)據(jù)塊,目的是便于非真彩色顯示程序用它來量化圖像數(shù)據(jù),從而顯示該圖像。調(diào)色板數(shù)據(jù)塊結(jié)構(gòu)如表6-09所示。

    表6-09 調(diào)色板數(shù)據(jù)塊結(jié)構(gòu)

    域的名稱

    字節(jié)數(shù)

    說明

    Red

    1 byte

    0 = 黑,255 = 紅

    Green

    ">

    0 = 黑,255 = 綠

    Blue

    1 byte

    0 = 黑,255 = 藍(lán)

    調(diào)色板實(shí)際是一個(gè)彩色索引查找表,它的表項(xiàng)數(shù)目可以是1~256中的一個(gè)數(shù),每個(gè)表項(xiàng)有3字節(jié),因此調(diào)色板數(shù)據(jù)塊所包含的最大字節(jié)數(shù)為768。

    (3) 圖像數(shù)據(jù)塊IDAT(image data chunk):它存儲(chǔ)實(shí)際的數(shù)據(jù),在數(shù)據(jù)流中可包含多個(gè)連續(xù)順序的圖像數(shù)據(jù)塊。

    (4) 圖像結(jié)束數(shù)據(jù)IEND(image trailer chunk):它用來標(biāo)記PNG文件或者數(shù)據(jù)流已經(jīng)結(jié)束,并且必須要放在文件的尾部。

    除了表示數(shù)據(jù)塊開始的IHDR必須放在最前面, 表示PNG文件結(jié)束的IEND數(shù)據(jù)塊放在最后面之外,其他數(shù)據(jù)塊的存放順序沒有限制。

    2. 輔助數(shù)據(jù)塊

    PNG文件格式規(guī)范制定的10個(gè)輔助數(shù)據(jù)塊是:

    (1) 背景顏色數(shù)據(jù)塊bKGD(background color)。

    (2) 基色和白色度數(shù)據(jù)塊cHRM(primary chromaticities and white point)。所謂白色度是指當(dāng)R=G=B=最大值時(shí)在顯示器上產(chǎn)生的白色度。

    (3) 圖像γ數(shù)據(jù)塊gAMA(image gamma)。

    (4) 圖像直方圖數(shù)據(jù)塊hIST(image histogram)。

    (5) 物理像素尺寸數(shù)據(jù)塊pHYs(physical pixel dimensions)。

    (6) 樣本有效位數(shù)據(jù)塊sBIT(significant bits)。

    (7) 文本信息數(shù)據(jù)塊tEXt(textual data)。

    (8) 圖像最后修改時(shí)間數(shù)據(jù)塊tIME (image last-modification time)。

    (9) 圖像透明數(shù)據(jù)塊tRNS (transparency)。

    (10) 壓縮文本數(shù)據(jù)塊zTXt (compressed textual data)。

    3. 數(shù)據(jù)塊摘要

    關(guān)鍵數(shù)據(jù)塊、輔助數(shù)據(jù)塊和專用公共數(shù)據(jù)塊(special-purpose public chunks)綜合在表6-10中。

    表6-10 PNG文件格式中的數(shù)據(jù)塊

    數(shù)據(jù)塊符號(hào)

    數(shù)據(jù)塊名稱

    多數(shù)據(jù)塊

    可選否

    位置限制

    IHDR

    文件頭數(shù)據(jù)塊

    第一塊

    cHRM

    基色和白色點(diǎn)數(shù)據(jù)塊

    在PLTE和IDAT之前

    gAMA

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

    在PLTE和IDAT之前

    sBIT

    樣本有效位數(shù)據(jù)塊

    在PLTE和IDAT之前

    PLTE

    調(diào)色板數(shù)據(jù)塊

    在IDAT之前

    bKGD

    背景顏色數(shù)據(jù)塊

    在PLTE之后IDAT之前

    hIST

    圖像直方圖數(shù)據(jù)塊

    在PLTE之后IDAT之前

    tRNS

    圖像透明數(shù)據(jù)塊

    在PLTE之后IDAT之前

    oFFs

    (專用公共數(shù)據(jù)塊)

    在IDAT之前

    pHYs

    物理像素尺寸數(shù)據(jù)塊

    在IDAT之前

    sCAL

    (專用公共數(shù)據(jù)塊)

    在IDAT之前

    IDAT

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

    與其他IDAT連續(xù)

    tIME

    圖像最后修改時(shí)間數(shù)據(jù)塊

    無限制

    tEXt

    文本信息數(shù)據(jù)塊

    無限制

    zTXt

    壓縮文本數(shù)據(jù)塊

    無限制

    fRAc

    (專用公共數(shù)據(jù)塊)

    無限制

    gIFg

    (專用公共數(shù)據(jù)塊)

    無限制

    gIFt

    (專用公共數(shù)據(jù)塊)

    無限制

    gIFx

    (專用公共數(shù)據(jù)塊)

    無限制

    IEND

    圖像結(jié)束數(shù)據(jù)

    最后一個(gè)數(shù)據(jù)塊

    tEXtzTXt數(shù)據(jù)塊中的標(biāo)準(zhǔn)關(guān)鍵字:

    Title

    圖像名稱或者標(biāo)題

    Author

    圖像作者名

    Description

    圖像說明

    Copyright

    版權(quán)聲明

    CreationTime

    原圖創(chuàng)作時(shí)間

    Software

    創(chuàng)作圖像使用的軟件

    Disclaimer

    棄權(quán)

    Warning

    圖像內(nèi)容警告

    Source

    創(chuàng)作圖像使用的設(shè)備

    Comment

    各種注釋

    posted on 2005-06-22 16:54 小米 閱讀(751) 評(píng)論(1)  編輯  收藏 所屬分類: 其它

    評(píng)論:
    # re: PNG格式 2008-01-14 22:25 | dfymr
    說的不錯(cuò), 江蘇現(xiàn)在用那種打開方式可以打開?哈哈哈!
      回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 色偷偷亚洲第一综合| 久久免费高清视频| 亚洲日韩精品一区二区三区无码| 在线观看肉片AV网站免费| 亚洲AV综合色区无码二区偷拍| 亚洲AV无码不卡在线观看下载| 一个人看的www免费视频在线观看| 中文字幕亚洲男人的天堂网络| 亚洲色偷拍区另类无码专区| 人成午夜免费视频在线观看| 亚洲五月午夜免费在线视频| 亚洲一区二区三区免费观看| 国产精品亚洲高清一区二区| 在线观看特色大片免费视频| 亚洲免费视频一区二区三区| 自拍日韩亚洲一区在线| 亚洲老妈激情一区二区三区| 最近中文字幕无吗免费高清 | 91在线手机精品免费观看| 久久人午夜亚洲精品无码区 | 在线免费观看伊人三级电影| 国产成人精品日本亚洲网址| 国产亚洲人成网站在线观看| 成年女性特黄午夜视频免费看| 久久久久久av无码免费看大片| 亚洲中文字幕无码爆乳app| 国产AV无码专区亚洲精品| 亚洲va中文字幕无码| 免费在线看v网址| 久久国产乱子伦精品免费强| 黄色毛片免费在线观看| 亚洲丝袜中文字幕| 亚洲AV日韩AV永久无码久久| 亚洲AV无码乱码精品国产| 成人毛片免费播放| 在线免费观看你懂的| 三年片在线观看免费| 一级毛片免费不卡直观看| 亚洲国产一区二区三区在线观看| 亚洲一级大黄大色毛片| 久久国产亚洲高清观看|