PNG圖片小結

PNG:php

便攜式網絡圖形(Portable Network Graphics,PNG)是一種無損壓縮位圖圖形格式,支持索引、灰度RGB三種顏色方案以及Alpha通道等特性。PNG的開發目標是改善並替換GIF做爲適合網絡傳輸的格式而不需專利許可,因此被普遍應用於互聯網及其餘方面上。算法

PNG另外一個非正式的名稱來源爲遞歸縮寫:「PNG is Not GIF」。網絡

特性

  • 支持256色調色板技術以產生小體積文件
  • 最高支持48位真彩色圖像以及16位灰度圖像
  • 支持Alpha通道的透明/半透明特性。
  • 支持圖像亮度的Gamma校準信息。
  • 支持存儲附加文本信息,以保留圖像名稱、做者、版權、創做時間、註釋等信息。
  • 使用無損壓縮。
  • 漸近顯示和流式讀寫,適合在網絡傳輸中快速顯示預覽效果後再展現全貌。
  • 使用CRC防止文件出錯。
  • 最新的PNG標準容許在一個文件內存儲多幅圖像。

因爲PNG是無損壓縮,那也就意味着他能夠從新精確的改造原圖片(1.過濾,2.壓縮)。編碼

1.過濾(Filtering)spa

差分編碼:又叫增量編碼,差分編碼的簡單例子是儲存序列式資料之間的差別(而不是儲存資料自己):不存「2,3,4,5,6,7,8」,而是存「2,1,1,1,1,1,1」。orm

[2,3,4,5,6,7,8] can become [2,1,1,1,1,1,1], where遞歸

[2, 3–2=1, 4–3=1, 5–4=1, 6–5=1, 7–6=1, 8–7=1]索引

單獨使用用處不大,可是在序列式數值常出現時能夠幫助壓縮資料。因爲改變一般很小(平均佔所有大小的2%),差分編碼能大幅減小資料的重複。一連串獨特的delta檔案在空間上要比未編碼的相等檔案有效率多了。Windows中的差分壓縮也是利用這種編碼方式圖片

 

PNG圖片存儲用的也是差分編碼便是Filtering。ip

2.壓縮

主要用到LZ77壓縮算法。

參考:https://medium.com/@duhroach/how-png-works-f1174e3cc7b7

 

關於PNG的格式:

 

若是不用透明(alpha),RGBA 32bpp選項會浪費圖片大小的 ¼,能夠用24bpp truecolor format (or just use JPG).固然,若是圖片包含灰圖模式的數據,你應該只用8bpp.存儲。總之,像素存儲格式,選擇須要用心呀。

INDEXED format.

INDEXED color mode, basically chooses the best 256 colors to use, and replaces all your pixels with an index into that color palette. The result, is a reduction from 16 million colors (24bpp) to 256, which is a significant savings.

對比

 

參考:https://medium.com/@duhroach/reducing-png-file-size-8473480d0476#.ut4mvxkcv

相關文章
相關標籤/搜索