pngquant——一個好用的png壓縮工具


一個可以進行有損圖片壓縮的命令行工具和代碼庫。

網址:https://pngquant.org/

 

 

1.為什么選擇pngquant

傳說中的神器—— tinyPng
我們現在用的工具—— ImageAlpha
其他
PhotoShop
Advpng
OptiPNG
Pngcrush
PngOptimizerCL

 

13PNG圖片壓縮優化工具

 

2.為什么選擇pngquant

結合矢量化運算的高質量的調色板。
獨特的自適應抖動算法。
跨平台:windows,Mac OS X,Linux。C語言實現,容易集成於腳本、GUI、服務器軟件。
快速模式處理大量圖像。
壓縮率高達70%,失真率很低。


 

3.PNG是什么——特點

 

PNG,圖像文件存儲格式,其設計目的是試圖替代GIF和TIFF文件格式,同時增加一些GIF文件格式所不具備的特性。
體積小

 

網絡通訊中因受帶寬制約,在保證圖片清晰、逼真的前提下,網頁中不可能大范圍的使用文件較大的bmp、jpg格式文件。

無損壓縮

PNG文件采用LZ77算法的派生算法進行壓縮,其結果是獲得高的壓縮比,不損失數據。它利用特殊的編碼方法標記重復出現的數據,因而對圖像的顏色沒有影響,也不可能產生顏色的損失,這樣就可以重復保存而不降低圖像質量。

索引彩色模式

PNG-8格式與GIF圖像類似,同樣采用8位調色板將RGB彩色圖像轉換為索引彩色圖像。圖像中保存的不再是各個像素的彩色信息,而是從圖像中挑選出來的具有代表性的顏色編號,每一編號對應一種顏色,圖像的數據量也因此減少,這對彩色圖像的傳播非常有利。

更優化的網絡傳輸顯示

PNG圖像在瀏覽器上采用流式瀏覽,即使經過交錯處理的圖像會在完全下載之前提供瀏覽者一個基本的圖像內容,然后再逐漸清晰起來。它允許連續讀出和寫入圖像數據,這個特性很適合於在通信過程中顯示和生成圖像。

支持透明效果

PNG可以為原圖像定義256個透明層次,使得彩色圖像的邊緣能與任何背景平滑地融合,從而徹底地消除鋸齒邊緣。這種功能是GIF和JPEG沒有的。PNG同時還支持真彩和灰度級圖像的Alpha通道透明度。

 

4.PNG是什么——文件結構

 

文件署名域

 

8字節的PNG文件署名域用來識別該文件是不是PNG文件。該域的值是:

十進制數137 80 78 71 13 10 26 10

十六進制數 89 50 4e 47 0d 0a 1a 0a

數據塊(Chunk)


5.PNG是什么——數據塊
PLTE
因此,調色板的長度應該是3的倍數,否則,這將是一個非法的調色板。對於索引圖像,調色板信息是必須的,調色板的顏色索引從0開始編號,然后是1、2……,調色板的顏色數不能超過色深中規定的顏色數(如圖像色深為4的時候,調色板中的顏色數不可以超過2^4=16),否則,這將導致PNG圖像不合法。真彩色圖像和帶α通道數據的真彩色圖像也可以有調色板數據塊,目的是便於非真彩色顯示程序用它來量化圖像數據,從而顯示該圖像。
IDAT
圖像數據塊IDAT(image data chunk):它存儲實際的數據,在數據流中可包含多個連續順序的圖像數據塊。IDAT存放着圖像真正的數據信息,因此,如果能夠了解IDAT的結構,我們就可以很方便的生成PNG圖像。
IHDR
 文件頭數據塊IHDR(header chunk):它包含有PNG文件中存儲的圖像數據的基本信息,並要作為第一個數據塊出現在PNG數據流中,而且一個PNG數據流中只能有一個文件頭數據塊。
IEND

 圖像結束數據IEND(image trailer chunk):它用來標記PNG文件或者數據流已經結束,並且必須要放在文件的尾部。如果我們仔細觀察PNG文件,我們會發現,文件的結尾12個字符看起來總應該是這樣的:00 00 00 00 49 45 4E 44 AE 42 60 82




6.參數分析

用法: pngquant [options] [ncolors] --pngfile

--help   幫助(簡寫-h)
--force  覆蓋已存在的導出文件(-f)
--skip-if-larger當轉換的文件比源文件更小時保存文件
--output 目標文件路徑(-o),與--ext用法相似
--ext 為導出文件添加一個后綴名,例如--ext new.png
--quality min-max為圖片轉換加一個品質限制,如果轉換后的圖片比最低品質還低,就不保存,並返回錯誤碼99.取值范圍 0-100
--speed 轉換速度與品質的比例。1(最佳品質),10(速度最快),默認是3
--verbose 打印出處理的狀態

7.示例代碼



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM