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

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

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

    隨筆-57  評論-202  文章-17  trackbacks-0
    6.4 PNG格式

    6.4.1 簡介

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

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

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

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

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

    6.4.2 文件結構

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

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

    (1) PNG文件署名域

    8字節的PNG文件署名域用來識別該文件是不是PNG文件。該域的值是:

    十進制數

    137

    80

    78

    71

    13

    10

    26

    10

    十六進制數

    89

    50

    4e

    47

    0d

    0a

    1a

    0a

     

    (2) 數據塊的結構

    每個數據塊都由表6-07所示的的4個域組成。

    表6-07 PNG文件數據塊的結構

    名稱

    字節數

    說明

    Length(長度)

    4字節

    指定數據塊中數據域的長度,其長度不超過
    (231-1)字節

    Chunk Type Code(數據塊類型碼)

    4字節

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

    Chunk Data(數據塊數據)

    可變長度

    存儲按照Chunk Type Code指定的數據

    CRC(循環冗余檢測)

    4字節

    存儲用來檢測是否有錯誤的循環冗余碼

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

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

    6.4.3 數據塊結構

    1. 關鍵數據塊

    關鍵數據塊中的4個標準數據塊是:

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

    文件頭數據塊由13字節組成,它的格式如表6-08所示。

    表6-08 PNG文件頭鍵數據塊的結構

    域的名稱

    字節數

    說明

    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:帶α通道數據的灰度圖像,8或16
    6:帶α通道數據的真彩色圖像,8或16

    Compression method

    1 byte

    壓縮方法(LZ77派生算法)

    Filter method

    1 byte

    濾波器方法

    Interlace method

    1 byte

    隔行掃描方法:

    0:非隔行掃描

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

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

    表6-09 調色板數據塊結構

    域的名稱

    字節數

    說明

    Red

    1 byte

    0 = 黑,255 = 紅

    Green

    ">

    0 = 黑,255 = 綠

    Blue

    1 byte

    0 = 黑,255 = 藍

    調色板實際是一個彩色索引查找表,它的表項數目可以是1~256中的一個數,每個表項有3字節,因此調色板數據塊所包含的最大字節數為768。

    (3) 圖像數據塊IDAT(image data chunk):它存儲實際的數據,在數據流中可包含多個連續順序的圖像數據塊。

    (4) 圖像結束數據IEND(image trailer chunk):它用來標記PNG文件或者數據流已經結束,并且必須要放在文件的尾部。

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

    2. 輔助數據塊

    PNG文件格式規范制定的10個輔助數據塊是:

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

    (2) 基色和白色度數據塊cHRM(primary chromaticities and white point)。所謂白色度是指當R=G=B=最大值時在顯示器上產生的白色度。

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

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

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

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

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

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

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

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

    3. 數據塊摘要

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

    表6-10 PNG文件格式中的數據塊

    數據塊符號

    數據塊名稱

    多數據塊

    可選否

    位置限制

    IHDR

    文件頭數據塊

    第一塊

    cHRM

    基色和白色點數據塊

    在PLTE和IDAT之前

    gAMA

    圖像γ數據塊

    在PLTE和IDAT之前

    sBIT

    樣本有效位數據塊

    在PLTE和IDAT之前

    PLTE

    調色板數據塊

    在IDAT之前

    bKGD

    背景顏色數據塊

    在PLTE之后IDAT之前

    hIST

    圖像直方圖數據塊

    在PLTE之后IDAT之前

    tRNS

    圖像透明數據塊

    在PLTE之后IDAT之前

    oFFs

    (專用公共數據塊)

    在IDAT之前

    pHYs

    物理像素尺寸數據塊

    在IDAT之前

    sCAL

    (專用公共數據塊)

    在IDAT之前

    IDAT

    圖像數據塊

    與其他IDAT連續

    tIME

    圖像最后修改時間數據塊

    無限制

    tEXt

    文本信息數據塊

    無限制

    zTXt

    壓縮文本數據塊

    無限制

    fRAc

    (專用公共數據塊)

    無限制

    gIFg

    (專用公共數據塊)

    無限制

    gIFt

    (專用公共數據塊)

    無限制

    gIFx

    (專用公共數據塊)

    無限制

    IEND

    圖像結束數據

    最后一個數據塊

    tEXtzTXt數據塊中的標準關鍵字:

    Title

    圖像名稱或者標題

    Author

    圖像作者名

    Description

    圖像說明

    Copyright

    版權聲明

    CreationTime

    原圖創作時間

    Software

    創作圖像使用的軟件

    Disclaimer

    棄權

    Warning

    圖像內容警告

    Source

    創作圖像使用的設備

    Comment

    各種注釋

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

    評論:
    # re: PNG格式 2008-01-14 22:25 | dfymr
    說的不錯, 江蘇現在用那種打開方式可以打開?哈哈哈!
      回復  更多評論
      
    主站蜘蛛池模板: 四虎免费在线观看| 免费看片在线观看| 亚洲国产成人精品女人久久久 | 亚洲国产成人超福利久久精品| 免费看黄的成人APP| 久久久综合亚洲色一区二区三区| 国内精品一级毛片免费看| 亚洲AV日韩精品久久久久久| 在线涩涩免费观看国产精品| 久久久亚洲裙底偷窥综合| 亚洲免费观看在线视频| 亚洲综合久久一本伊伊区| 成人男女网18免费视频| 国产精品亚洲专区一区| 亚洲人成无码www久久久| 黄网站色视频免费在线观看的a站最新| 国产亚洲精品va在线| 亚洲精品免费在线视频| 亚洲无人区码一二三码区别图片| 免费特级黄毛片在线成人观看| 污视频网站免费观看| 亚洲AV无码一区东京热久久| 免费国产黄网站在线观看视频| 亚洲一区二区三区亚瑟 | 亚洲精品和日本精品| 中文字幕乱码系列免费| 亚洲一区二区成人| 精品免费久久久久久成人影院| 日韩一区二区三区免费播放| 亚洲成色WWW久久网站| A在线观看免费网站大全| 又硬又粗又长又爽免费看| 日本亚洲视频在线| 女人被男人桶得好爽免费视频| 免费无码又爽又黄又刺激网站| 亚洲AV无码乱码国产麻豆穿越| 成全视频在线观看免费高清动漫视频下载| 另类图片亚洲校园小说区| 亚洲精品国产成人专区| 日韩免费视频播播| 久别的草原电视剧免费观看|