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文件格式的下列特性:
PNG文件格式中要增加下列GIF文件格式所沒有的特性:
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文件。該域的值是:
(2) 數據塊的結構 每個數據塊都由表6-07所示的的4個域組成。 表6-07 PNG文件數據塊的結構
在表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文件頭鍵數據塊的結構
(2) 調色板數據塊PLTE(palette chunk):它包含有與索引彩色圖像((indexed-color image))相關的彩色變換數據,它僅與索引彩色圖像有關,而且要放在圖像數據塊(image data chunk)之前。真彩色的PNG數據流也可以有調色板數據塊,目的是便於非真彩色顯示程序用它來量化圖像數據,從而顯示該圖像。調色板數據塊結構如表6-09所示。 表6-09 調色板數據塊結構
調色板實際是一個彩色索引查找表,它的表項數目可以是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文件格式中的數據塊
tEXt 和zTXt數據塊中的標准關鍵字:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
相關文檔:《jpeg 文檔格式》 相關文檔:《圖像后綴一覽表》 |