跳至內容

PNG

出自Taiwan Tongues 台語維基
於 2025年8月19日 (二) 21:49 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

會當紮網路圖形(英語:PortableNetworkGraphics,PNG)是一種支援無失真壓縮的點陣圖形格式,支援索引、灰度、RGB 三種色水的方案以及 Alpha 通道遮的特性。PNG 的開發目標是改善並取代 GIF 做一个適合網路傳輸的格式毋免專利許可,所以泛應用佇網際網路佮其他方面上。

PNG 另外一个非正式的名稱來源為遞迴縮寫:「PNG isNotGIF」。 PNG 的官方唸法是「平」(英語 IPA:/ pɪŋ /;「 平」是以國語的發音), 但是多數人是當做三个英文字母分開讀。

PNG圖片大多數攏使用 ` PNG ` 是副檔名,其網際網路媒體類型做 ` image / png `。PNG 佇一九九七年三月作為智識性 RFC 兩千空八十三發布,佇二空空四年作為 ISO / IEC 標準發布。

特性

  • 支援兩百五十六色調色盤技術以產生小體積檔案
  • 上懸支援二十四位元真彩色圖像以及八位元灰度圖像。
  • 支援 Alpha 通道的透明 / 半透明特性。
  • 支援圖像光度的 Gamma 校準資訊。
  • 支援儲存附加文字資訊,以保留圖像名稱、作者、著作權、創作時間、注釋等等的資訊。
  • 支援無失真壓縮。
  • 漸漸顯示佮串流讀寫,適合佇咧網路傳輸中快速顯示預覽效果了後才閣展示全貌。
  • 使用 CRC 防止檔案出錯。
  • 上新的 PNG 標準允准佇一个檔案記憶體儲多幅圖像。

版本佮歷史

一九九五年早期,Unisys 公司根據伊佇咧 GIF 格式內底使用的 LZW 資料壓縮演算法的軟體專利(美國第四百五十五鋪八千三百空二號)開始商業收費。為著避免專利影響,用佇咧表現單張圖像的 PNG、用表現動畫的 Multiple-image Network Graphics 圖形檔案格同齊建立出來。一九九九年八月,Unisys 公司進一步停了對自由軟體佮非商用軟體開發者的 GIF 專利免費許可,從而使 PNG 格式提著閣較濟的關注。

佇咧 PNG 傳播過程當中,真濟網路瀏覽器經過誠久才開始時間才開始完全支援 PNG 格式;如 Microsoft Windows 預設的 Internet Explorer 瀏覽器一直到七孵空版才支援 PNG 格式內底的半透明效果,以前的版本( 如六桱空 SP 一)需要下載 Hotfix 抑是由網站提供另外的 Script 去支援。這造成 PNG 格式並無得著廣泛的認知。

  • PNG 的一更加零版本規範佇一九九六年七月一日發布,到尾仔講 RFC 兩千空八十三標準,並且佇一九九六年十月初一成做 W 三 C 建議喔。
  • PNG 的一鋪一版本進行了部份小幅度修改閣增加了三个新的資料塊定義,佇一九九八年十二月三一日發布。
  • PNG 的一孵二版本增加另外一个資料塊,佇一九九九年八月十一發布。
  • PNG 現行版本是國際標準(ISO/IEC 一爿五千九百四十八的 : 兩千空三), 並佇二空空三年一正月十號做 W 三 C 建議發布。這个版本佮一鋪二版干焦有略略仔差別。

另外嘛產生矣因為 PNG 的動畫格式:一九九六年六月提出 PNF(Portable Network Frame)草案,當年八月改名做 MNG(Multiple-image Network Graphics), 毋過因為複雜,實現支援的軟體較少。二空空四年尾,PNG 的動畫擴充—— APNG,提出來。這是個比較起來 MNG 較簡單的動畫實現方案,無辨識 APNG 格式的 PNG 解碼器至少會當正常回放第一幅普通 PNG 畫面,反倒轉來得著大部分的顯示抑是編輯的軟體支援。

檔案結構

儲存型別

PNG 圖片主要是三種型別儲存

  • PNG 八 : 圖片使用八 bits 來儉,會當用兩个八擺方大細項的這个種類色水來儉一張烏白的圖片。也就是講 PNG 八會當儉兩百五十六種色水,因為為色水少,檔案體積嘛足細的,一張圖片若色簡單,共伊設定做 PNG 八的圖片是非常省空間合適的。
  • PNG 二十四 : 圖片使用二十四 bits 來儉,用三个八 bits 分別去表示 R(紅)、 G(綠)、 B(藍)三个通道 ( Channel ) 的數值。會使表達兩百五十六乘以兩百五十六乘以兩百五十六=一千六百七十七刣七千二百十六種色水的圖片,色彩的豐富度閣較懸,但是相對的所占用的空間就閣較大矣。
  • PNG 三十二 :圖片使用三十二 bits 來儉,相當於是 PNG 二十四加上八 bits 的透明色水通道,攏總有 R(紅)、 G(綠)、 B(藍)、 A(透明)四个通道。圖片會當表示的色彩佮 PNG 二十四平濟呢,並且閣支援兩百五十六種透明度,會當予圖片的色彩更加豐富。

檔案的資料構成

PNG 圖像格式檔案由一个八位元組的 PNG 檔案標識(file signature or file header)域佮三以上的後壁資料塊 ( chunk ) 如:IHDR、IDAT、IEND 等組成。

PNG 檔案包括八位元組檔案落名(八十九五十四 E 四十七零 D 零 A 一 A 零 A,十六進位), 用來辨識 PNG格式,所有 PNG 圖片檔 àn-nāi 容開頭攏有這捾 header。

PNG 定義了兩種類型的資料塊:一款是 PNG 檔案著愛包含、讀寫軟體嘛攏必須愛支援的關鍵塊(critical chunk); 另外一款叫做輔助塊(ancillary chunks), PNG 允准軟體雄雄無熟似的佮加塊。這種是因為資料角的設計,容允 PNG 格式咧擴充的時陣猶閣有保持佮舊版本相容。

數據塊結構

PNG 檔案中,每一个數據塊攏由四个部份組成,如下 :

關鍵資料內底有四个標準資料角:

  • 檔案頭資料塊 IHDR(header chunk): 包含有圖像基本資訊,做第一个資料塊出現干焦出現一改。
  • 調色盤的資料角 PLTE(palette chunk): 著愛囥咧圖像資料角進前。
  • 圖像資料塊 IDAT(image data chunk): 儲存實際圖像資料。PNG 資料允准包含濟个連續的圖像資料塊。* 圖像結束資料 IEND(image trailer chunk): 囥佇檔案尾仔,表示 PNG 資料流結束。

賰的輔助數據塊列表 :

壓縮方式

PNG 圖片的壓縮主要分有兩階段:* 預解析(Prediction)

  • 壓縮(Compression)

因為壓縮方式主要因為以上兩个階段構成,優化方向嘛對應著兩个階段。針對預解析階段做優化主要的選擇是去優化差分編碼器,予編碼出的結果會當出現盡量濟的零值抑是仝款的值。針對壓縮階段的優化就是揣出閣較好的 Deflate 演算法,閣較懸的壓縮率。

預解析

佇這个階段內底,圖片會先做寡先做寡先的處理,後壁壓縮。逐擺會處理圖片中某一行(column)的數據,頭一改經過濾波器 ( Filter ) 來處理遮的數據,逐个較素的(Pixel)佇無仝通道內底(Channel ex : RGB)的數值攏會經過濾波器運算,然後就愛出的結果會交予䆀分處理器來重新計算通道中的數值。差分處理器會將目前這像素點上通道中的數值和進前抑是之上(EX:倒爿起去矣)像較素的做對比,根據差異進行差分編碼。若是相鄰的像較素點佇通道頂懸的數值不止仔接近,就會出真濟一 ,零 , 鋪一這種足細的值。規个 prediction 階段愛做的代誌就是揣著適合的差分編碼器,予最終差分編碼的結果盡量的攏是重複足細抑是零的值,這一階段的結果會影響著 Compression 階段中會用得實現的壓縮率。

壓縮

經過預解析的階段了後,將編碼出的結果輸出予 Deflate(是一種無損數據壓縮演算法,同時使用矣 LZ 七十七佮 Huffman Coding 方法), 由其執行真正的的壓縮操作,佇這个階段會通過 LZ 七十七佮 Huffman Coding 方法來對圖像進行編碼,最後共處理了後的圖片結果儲存。最終的壓縮率主要受著兩方面的影響 :

  • 預解析的階段(Prediction)的處理結果:對於 RGB 通道數值相倚的像素區域,也就是編碼結果有真濟零值的區域,咧壓縮階段著做的壓縮率會特別懸,若是相鄰區域的色水差異大,是壓縮效果就會大打折扣。
  • Deflate 逐隻的配情形: 佇規个咧壓縮處理的過程內底攏是以行(column)為單位來進行處理。佇處裡數據的過程中,處裡的符號數被限制在三-兩百五十八之間,換言之,上懸的壓縮率會當達到一千空三十二 : 一,做出現的符號數小於三時,就可能出現無法度配的狀況。所以圖片的闊度嘛會是一个可能影響最終壓縮效果的因素之一。

壓縮方案

PNG 壓縮提供兩種壓縮方案

  • 無失真壓縮(Lossless Compression): 數據經過壓縮了後,資訊無受損失,會當完全閣原底壓縮進前的模樣,通常這款壓縮方案的壓縮率有一定的限制。
  • 有損壓縮(Lossy compression): 數據經過壓縮了後,資訊數據會佮原始數據無仝,猶毋過干焦限於一屑屑仔差距離,通常這款壓縮方案會當提供非常懸的壓縮率。

無失真壓縮方案

目前大部份 PNG 的壓縮採用基於 LZ 七十七衍生演算法,予伊壓縮比率閣較懸,生成的檔案體積閣較細,並且無損失數據。

有損壓縮方案

因為 PNG 原本的無失真壓縮方案佇咧壓縮率頂懸有一定的限制,有一寡開源者無法度接受也有的壓縮率,所以因為按呢 PNG 原本的壓縮方式開發新的有損壓縮方案,佇工程當中佮得著了一定的應用。比如講 TinyPNG , 根據官方公開的資訊,其利用過 Quantization 的技術來實現提高壓縮率,通過合併相仝的色水將二十四位元的 PNG 圖片壓縮做閣較細的八位元圖片。其中閣較出名的 PNG 有損壓縮演算法pngquant,佇咧 Github 上有完整的開原始碼,仝款嘛是使用矣 Vector Quantization 來減少圖片食色水的種類,佇咧向量化過程當中將像素點根據色水相𫝛程度進行分組,隨後組內的像素統計出一个中心色水共所有的組內像素攏替代替這个中心色水。向量化會造成圖片失真,欲按怎咧壓縮率佮圖片品質之間取得一个拄好處的平衡點是值得優化的方向。

佮其伊格式相比

佮 GIF 相比並

  • 一般情況下將靜態 GIF 圖像無失真轉換做 PNG 後會使壓縮率會略為著提懸(前提是仝款採用八位元索引模式)。
  • PNG 會當提供閣較大色水的深度支援,包括二十四位元(八位元三通道)佮四十八位元(十六位元三通道)真彩色。加入 Alpha 巷路了後會當進一步支援逐家好親像素六十四位元的表示。
  • 超過八位元色深深的 PNG 圖像轉換做GIF 時,圖像品質會因為分色(色水減少)下降。
  • GIF 原生支援動態圖像,PNG 干焦會當通過非標準實現,佇咧 PNG 的基礎頂懸另外有發展出支援動畫的 APNG 和 MNG 格式,毋過目前普遍度無懸。PNG 佇咧 IE 六等舊代瀏覽器上的支援較䆀。

佮 JPEG 相比並

JPEG 會當啊對相片(抑是類似)圖像生成閣較細的檔案,這是因為 JPEG 採用一種針對相片圖像的特定有損編碼方法,這種編碼適用低對比,圖像色水過渡平滑,雜訊濟,而且結構無規則的情形下。若佇這个情形下用 PNG 代替 JPEG,檔案 sài-sù 加足大的,圖像品質的提懸有限。相應的,若儲存文字,線條抑是類似的邊緣足清的,有大塊仝款色水的圖樣,PNG 格式的壓縮效果就愛比 JPEG 好足濟,並且袂出現 JPEG 彼懸對比度區域的圖像失真。若圖像猶閣有清楚度邊緣,閣有相片圖像的特點,就需要佇這兩種格式之間做懸山。 JPEG 援透明度。

因為 JPEG 是失真壓縮,會產生迵天代失真,佇重複壓縮和解碼的過程中會不斷遺失資訊予圖像品質下降。因為 PNG 是無失真的,儲存將欲編輯的圖像來講更加合。雖然 PNG壓縮相片圖樣也有效,毋過有專門針對相片圖像設計的無失真壓縮格式,譬如講無失真 JPEG 兩千和 DNG。橫直來講遮的間式攏袂當做到適用所有的圖像。對欲發布的圖像會當儉做 JPEG,用 JPEG 編碼一擺袂造成明顯的圖像失真。

佮 JPEG-LS 相比並

JPEG-LS 是一个「差不多」無失真壓縮格式,相對面頂講的有損 JPEG 壓縮,伊的知名度無懸。伊會當直接和 PNG 相比並比較,使用一組標準的測試圖像。佇咧 Waterloo Repertoire ColorSet(一組標準測試圖像)落,JPEG-LS 通常表現欲比 PNG 好百分之十百分之馮十五,但是其中有一寡圖像 PNG 表現明顯閣較好咧,大約是百分之五十百分之抹七十五。所以乎,若這兩種束格攏支援而且對圖檔大細足敏感的話,會當用這兩種屈勢攏來試看覓,佮圖像資料本身有較大關係。

佮 TIFF 相比並

TIFF 是一个足濟方案結合的格式。伊講法用做專業圖像編輯軟體之間圖像交換的中央格式,所以伊不斷支援閣較濟應用程式所需要的功能,對應用程式無關心的圖像操作部份支援無濟。這嘛意味著有誠濟應用程式干焦會當辨識 TIFF 的一个子集,去產生閣較濟的潛在透濫的所在。

TIFF 使用的上通用的無失真壓縮演算法是 LZW。這種演算法--GIF 中嘛咧使用,一直到二空空三年一直佇專利保護之中。有一種 TIFF 變種使用佮 PNG 仝款的壓縮演算法,毋過無得著誠濟專利程式所支援。TIFF 嘛提供一種特殊的無失真壓縮演算法,類似 CCITT Group IV,會當對二值圖像(比如講傳真抑是烏白文字)比 PNG 有閣較好的壓縮效果。

PNG干焦支援非自倒乘 α,而且 TIFF 嘛支援聯合(自倒乘)α。

PNG 規範當中無包含1875入式去 EXIF(會當交換圖檔格式)圖像資料的標準,譬如講數位相機翕的圖像。而且 TIFF,JPEG 兩千 , DNG攏支援 EXIF。

早期的瀏覽器袂支援 PNG 圖像;JPEG 和 GIF 是主流圖像格式。因為 GIF 的色水深度的限制,網頁內底的有色水過渡的圖像攏是使用 JPEG。毋管按怎,JPEG 壓縮都會導致圖像的輕可模糊。而且 PNG 應該會當做甲佇相應色水的深度之下的儘可能精確,同時保持圖檔無大。PNG 已經漸漸仔成做對細條的梯度圖樣的較好的選擇,濟濟瀏覽器攏已經對 PNG 有矣足好的支援。

參考文獻

外部連結

  • PNG 檔案格式
  • PNG 規範第二版(英文), 二空空三年十一月十號 W 三 C 建議喔
  • PNG 官方站(英文)
  • PNG 的故事(英文)