PNG、JPEG、BMP等幾種圖片格式詳解(壹)—— PNG
圖片有很多的格式,包括 PNG 、 JPEG 、 JPG 、 BMP 等,下面我們就詳細的說壹下這幾張圖片的格式,並進行詳細的對比。
便攜式網絡圖形 (Portable Network Graphics) 是壹種無損壓縮的位圖圖形格式 。其設計目的是試圖替代 GIF 和 TIFF 文件格式,同時增加壹些GIF文件格式所不具備的特性。PNG的名稱來源於“可移植網絡圖形格式 (Portable Network Graphic Format,PNG) ”,也有壹個非官方解釋 “PNG's Not GIF” 。PNG使用從 LZ77 派生的無損數據壓縮算法,壹般應用於JAVA程序、網頁或S60程序中,原因是它壓縮比高,生成文件體積小。
PNG格式的圖片具有如下特點:
PNG圖像格式文件(或者稱為數據流)由壹個8字節的PNG文件署名 (PNG file signature) 域和按照特定結構組織的3個以上的數據塊 (chunk) 組成。
文件署名域
8字節的PNG文件署名域用來識別該文件是不是PNG文件。該域的值是:
數據塊類型碼命名約定
PNG定義了兩種類型的數據塊,壹種是稱為關鍵數據塊 (critical chunk) ,這是必需的數據塊,另壹種叫做輔助數據塊 (ancillary chunks) ,這是可選的數據塊。關鍵數據塊定義了4個標準數據塊,每個PNG文件都必須包含它們,PNG讀寫軟件也都必須要支持這些數據塊。雖然PNG文件規範沒有要求PNG編譯碼器對可選數據塊進行編碼和譯碼,但規範提倡支持可選數據塊。
數據塊的4個域組成如下圖所示。
下面我們就分析下這個結構。
關鍵數據塊
關鍵數據塊的組成如下所示。
輔助數據塊
看下面這個數據結構圖。
PNG格式有8位、24位、32位三種形式,其中8位PNG支持兩種不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基礎上增加了8位透明通道,因此可展現256級透明程度。
PNG8和PNG24後面的數字則是代表這種PNG格式最多可以索引和存儲的顏色值。”8″代表2的8次方也就是256色,而24則代表2的24次方大概有1600多萬色。
具體如下圖所示。
1. PNG,JPEG,BMP,JIF圖片格式詳解及其對比
2. PNG