pngquant的使用教程
1、簡介
pngquant是一個命令行工具和一個用於有損壓縮PNG圖像的庫。
轉換顯着減少文件大小(通常高達70%),並保留完整的alpha透明度。生成的圖像與所有網絡瀏覽器和操作系統兼容。
2、安裝
下載地址:https://pngquant.org/releases.html
安裝命令:
$ wget http://pngquant.org/pngquant-2.11.4-src.tar.gz $ tar -xzf pngquant-2.11.4-src.tar.gz $ cd pngquant-2.11.4 安裝依賴:yum install libpng-devel $ ./configure --prefix=/opt/runtime/pngquant $ make && make install
ok ,安裝完成。
注意:
pngquant -h 看是否正常,如果報:pngquant: error while loading shared libraries: liblcms2.so.2: cannot open shared object file: No such file or directory
重新裝一下liblcms2 , yum install http://pkgrepo.linuxtech.net/el6/release/x86_64/liblcms2-2.4-1.el6.x86_64.rpm 解決
Options:
請參閱 pngquant -h 完整的選項列表。
-
--ext new.png -
為輸出文件名設置自定義擴展。默認
-or8.png或被-fs8.png使用。 -
--quality min-max -
指示
最小值 和 最大值 是范圍0(最差)到100(完美)的數字,類似於 JPEG 。pngquant使用達到或超過最高質量所需的最少量的顏色。如果轉換結果的質量低於最低質量,圖像將不會被保存(如果輸出到標准輸出,則會輸出24位原始圖像),pngquant並將以狀態碼99退出。 -
pngquant --quality=65-80 image.png -
--speed N,-sN -
速度/品質取舍從1(蠻力)到10(最快)。默認值為3. Speed 10的質量下降了5%,但比默認的速度快了8倍。
-
--iebug -
IE6的解決方法,只顯示完全不透明的像素。
pngquant會使幾乎不透明的像素完全不透明,並會避免創建新的透明顏色。 -
--version -
將版本信息打印到標准輸出。
-
- -
從stdin讀取圖像並將結果發送到stdout。
-
-- -
停止參數的處理。這允許使用以開頭的文件名
-。如果您pngquant在腳本中使用,建議在文件名前加上:pngquant $OPTIONS -- "$FILE"
算法
pngquant 使用中值切割量化算法的修改版本和附加技術來減輕中值切割的缺陷。
而不是分裂具有最大音量或顏色數量的盒子,而是選擇盒子以最小化其中值的方差。
直方圖是建立在基本感知模型的基礎之上的,這樣可以減少圖像噪點區域的重量。
為了進一步改善顏色,在類似於梯度下降的過程中調整直方圖(中值切割重復許多次,在表現不佳的顏色上重量更多)。
最后,使用Voronoi迭代(K均值)來校正顏色,這保證了局部最佳的調色板。
pngquant 在預乘alpha顏色空間中工作,以減少透明顏色的重量。
當重新映射時,誤差擴散僅應用於若干相鄰像素量化為相同值且不是邊緣的區域。這避免了在沒有抖動的情況下將視覺質量增加的區域。
