本頁使用了標題或全文手工轉換

PNG

維基百科,自由的百科全書
跳至導覽 跳至搜尋
可攜式網路圖形
Portable Network Graphics

PNG transparency demonstration 1.png

透明的8位元PNG圖片
副檔名.png
網路媒體型式image/png
類型代碼英語Type code
  • PNG
  • PNGf
統一類型標識public.png
開發者W3C
初始版本1996年10月1日,​24年前​(1996-10-01
格式類型無失真壓縮
延伸成
標準
自由格式

可攜式網路圖形(英語:Portable Network GraphicsPNG)是一種支援無失真壓縮點陣圖圖形格式,支援索引、灰度RGB三種顏色方案以及Alpha通道等特性。PNG的開發目標是改善並取代GIF作為適合網路傳輸的格式而不需專利許可,所以被廣泛應用於網際網路及其他方面上。

PNG另一個非正式的名稱來源為遞迴縮寫:「PNG is Not GIF」。

PNG圖片大多數都使用PNG作為副檔名,其網際網路媒體類型image/png[1]PNG於1997年3月作為知識性RFC 2083發布,於2004年作為ISO/IEC標準發布。

特性[編輯]

  • 支援256色調色盤技術以產生小體積檔案
  • 最高支援24位元真彩色圖像以及8位元灰度圖像
  • 支援Alpha通道的透明/半透明特性。
  • 支援圖像亮度的Gamma校準資訊。
  • 支援儲存附加文字資訊,以保留圖像名稱、作者、著作權、創作時間、注釋等資訊。
  • 支援無失真壓縮。
  • 漸近顯示和串流讀寫,適合在網路傳輸中快速顯示預覽效果後再展示全貌。
  • 使用CRC防止檔案出錯。
  • 最新的PNG標準允許在一個檔案記憶體儲多幅圖像。

版本及歷史[編輯]

1995年早期,Unisys公司根據它在GIF格式中使用的LZW資料壓縮演算法的軟體專利美國 第4558302號 頁面存檔備份,存於網際網路檔案館)開始商業收費。為避免專利影響,用於表現單張圖像的PNG、用於表現動畫的Multiple-image Network Graphics圖形檔案格式被同時建立出來。1999年8月,Unisys公司進一步中止了對自由軟體和非商用軟體開發者的GIF專利免費許可,從而使PNG格式獲得了更多的關注。

在PNG傳播過程中,很多網路瀏覽器經過很長時間才開始完全支援PNG格式;如Microsoft Windows預設的Internet Explorer瀏覽器一直到7.0版才支援PNG格式中的半透明效果,較早期的版本(如6.0 SP1)需要下載Hotfix [2]或由網站提供額外的Script去支援。[3]這造成PNG格式並沒有得到廣泛的認知。

  • PNG的1.0版本規範於1996年7月1日發布,後來被稱為RFC 2083標準,並在1996年10月1日成為W3C建議。
  • PNG的1.1版本進行了部分小幅修改並增加了三個新的資料塊定義,於1998年12月31日發布。
  • PNG的1.2版本增加了另外一個資料塊,於1999年8月11日發布。
  • PNG現行版本是國際標準(ISOIEC 15948:2003),並在2003年11月10日作為W3C建議發布。這個版本與1.2版僅有細微差別。

此外也產生了基於PNG的動畫格式:1996年6月提出PNF(Portable Network Frame)草案,當年8月改名為MNG(Multiple-image Network Graphics),但由於較為複雜,實現支援的軟體較少。2004年末,PNG的動畫擴充——APNG,被提出來。這是一個相對於MNG更簡單的動畫實現方案,不辨識APNG格式的PNG解碼器至少能夠正常回放第一幅普通PNG畫面,相反地得到大部分顯示或編輯的軟體支援。

檔案結構[編輯]

PNG圖像格式檔案由一個8位元組的PNG檔案標識(file signature)域和3個以上的後續資料塊(IHDR、IDAT、IEND)組成。

PNG檔案包括8位元組檔案署名(89 50 4E 47 0D 0A 1A 0A,十六進位),用來辨識PNG格式。

十六進位 含義
89 用於檢測傳輸系統是否支援8位元的字元編碼(8 bit data),用以減少將文字檔案被錯誤的辨識成PNG檔案的機會,反之亦然。
50 4E 47 PNG每個字母對應的ASCII,讓使用者可以使用文字編輯器檢視時,辨識出是PNG檔案。
0D 0A DOS風格的換行符(CRLF)。用於DOS-Unix資料的換行符轉換。
1A 在DOS命令行下,用於阻止檔案顯示的檔案結束符。
0A Unix風格的換行符(LF)。用於Unix-DOS換行符的轉換。

PNG定義了兩種類型的資料塊:一種是PNG檔案必須包含、讀寫軟體也都必須要支援的關鍵塊(critical chunk);另一種叫做輔助塊(ancillary chunks),PNG允許軟體忽略它不認識的附加塊。這種基於資料塊的設計,允許PNG格式在擴充時仍能保持與舊版本相容

關鍵資料塊中有4個標準資料塊:

  • 檔案頭資料塊IHDR(header chunk):包含有圖像基本資訊,作為第一個資料塊出現並只出現一次。
  • 調色盤資料塊PLTE(palette chunk):必須放在圖像資料塊之前。
  • 圖像資料塊IDAT(image data chunk):儲存實際圖像資料。PNG資料允許包含多個連續的圖像資料塊。
  • 圖像結束資料IEND(image trailer chunk):放在檔案尾部,表示PNG資料流結束。

與其他格式相比[編輯]

與GIF相比[編輯]

  • 一般情況下將靜態GIF圖像無失真轉換為PNG後可以壓縮率會略為提高(前提是同樣採用8位元索引模式)。
  • PNG可提供更大顏色深度的支援,包括24位元(8位元3通道)和48位元(16位元3通道)真彩色。加入Alpha通道後可進一步支援每像素64位元的表示。
  • 超過8位元色深的PNG圖像轉換為GIF時,圖像品質會由於分色(顏色數減少)而下降。
  • GIF原生支援動態圖像,PNG只能通過非標準實現,在PNG的基礎上另有發展出支援動畫的APNGMNG格式,但目前普及度不高。

PNG在IE6等舊代瀏覽器上的支援較差。

與JPEG相比[編輯]

JPEG可以對相片(或類似)圖像生成更小的檔案,這是由於JPEG採用了一種針對相片圖像的特定有損編碼方法,這種編碼適用於低對比,圖像顏色過渡平滑,雜訊多,且結構不規則的情況下。如果在這種情況下用PNG代替JPEG,檔案尺寸增大很多,而圖像品質的提高有限。相應的,如果儲存文字,線條或類似的邊緣清晰,有大塊相同顏色區域的圖像,PNG格式的壓縮效果就要比JPEG好很多,並且不會出現JPEG那樣的高對比度區域的圖像失真。如果圖像既有清晰邊緣,又有相片圖像的特點,就需要在這兩種格式之間權衡一下了。JPEG不支援透明度。

由於JPEG是失真壓縮,會產生疊代失真,在重複壓縮和解碼的過程中會不斷遺失資訊使圖像品質下降。由於PNG是無失真的,儲存將要被編輯的圖像來說更加合適。雖然PNG壓縮相片圖像也有效,但有專門針對相片圖像設計的無失真壓縮格式,比如無失真JPEG2000Adobe DNG 頁面存檔備份,存於網際網路檔案館等。總的來說這些格式都不能做到適用所有圖像。對於將要發布的圖像可以儲存成JPEG,用JPEG編碼一次不會造成明顯的圖像失真。

與JPEG-LS相比[編輯]

JPEG-LS是一個「幾乎」無失真壓縮格式,相對於上面提到的有損JPEG壓縮,它的知名度不高。它可以直接和PNG相比較,使用一組標準的測試圖像。在Waterloo Repertoire ColorSet(一組標準測試圖像)下,JPEG-LS通常表現要比PNG好10%-15%,但其中有一些圖像PNG表現明顯更好一些,大約50%-75%。所以,如果這兩種格式都支援而且對圖檔大小很敏感的話,可以用這兩種格式都試試,和圖像資料本身有比較大關係。

與TIFF相比[編輯]

TIFF是一個相當多方案結合的格式。它被廣泛用作專業圖像編輯軟體之間圖像交換的中間格式,因此它不斷支援更多應用程式所需的功能,而對應用程式不關心的圖像操作部分支援不多。這也意味著許多應用程式只能辨識TIFF的一個子集,而產生更多的潛在混淆之處。

TIFF使用的最通用的無失真壓縮演算法是LZW。這種演算法--GIF中也在使用,直到2003年一直在專利保護之中。有一種TIFF變種使用與PNG相同的壓縮演算法,但是沒有被許多專利程式所支援。TIFF也提供了一種特殊的無失真壓縮演算法,類似CCITT Group IV,可以對二值圖像(比如傳真或黑白文字)比PNG有更好的壓縮效果。

PNG只支援非自左乘α,而TIFF也支援聯合(自左乘)α。

PNG規範中不包含嵌入式EXIF(可交換圖檔格式)圖像資料的標準,比如數位相機拍得的圖像。而TIFF,JPEG 2000, DNG都支援EXIF。

早期的瀏覽器不支援PNG圖像;JPEG和GIF是主流圖像格式。由於GIF的顏色深度限制,網頁中的有顏色過渡的圖像都是使用JPEG。不管怎樣,JPEG壓縮都會導致圖像的輕微模糊。而PNG可以做到在相應顏色深度下的儘可能精確,同時保持圖檔不大。PNG已經漸漸成為一種對於小的梯度圖像的較好的選擇,眾多瀏覽器都已經對PNG有了很好的支援。

參考文獻[編輯]

  1. ^ Registration of new Media Type image/png. IANA. 1996-07-27 [2018-01-09]. (原始內容存檔於2017-09-15). 
  2. ^ Microsoft技術支援服務 - You cannot view some PNG images in Internet Explorer 6 頁面存檔備份,存於網際網路檔案館,於2009年6月1日查閱。
  3. ^ The PNG problem in Windows Internet Explorer 網際網路檔案館存檔,存檔日期2009-05-21.,於2009年6月1日查閱。

外部連結[編輯]