通過將圖像轉換爲更有效的8-bit PNG格式 ,pngquant是一個 PNG compresor,它可以將圖像轉換爲更有效的PNG格式。 壓縮圖像完全符合標準,所有瀏覽器和操作系統都支持它。
用法
- 多個文件的批處理轉換:
pngquant *.png
- unix樣式標準標準/標準鏈接:
... | pngquant - |.. .
要進一步減小文件大小,請嘗試 optipngImageOptim或者zopflipng。
特性
- 高品質調色板生成
- 支持伽瑪校正和 premultiplied alpha的高級量化算法
- 獨特的抖動算法,不會向圖像添加不必要的噪聲
- 可以配置的質量級別
- 自動查找所需數量的顏色,並可以跳過無法轉換爲所需質量的圖像
- 快速,現代代碼
- 基於端口 libimagequant庫
- 對於遺留系統或者編譯器( 除了 Visual Studio 之外 ) 沒有任何解決方法
- 多核支持( 通過 OpenMP ) 和英特爾SSE優化
命令行選擇:
pngquant -h 查看所需參數
--quality min-max
min
和 max
是 0 ( 最差) 至 100 ( 完美)的數字,類似於 JPEG。 pngquant將使用滿足或者超過 max
質量要求的最少數量的顏色。 如果轉換結果以質量低於 min
質量,圖像將不會保存( 如果輸出到 stdin,24-bit 原始將輸出),pngquant將退出狀態碼 99.
--ext new.png
爲輸出文件名設置自定義擴展( 後綴)。 默認情況下使用 -or8.png
或者 -fs8.png
。 如果使用 --ext=.png --force
選項,pngquant將覆蓋在( 謹慎使用) 中的輸入文件。
-o out.png
或者 --output out.png
將轉換後的文件寫入給定路徑。 僅使用這裏選項時只允許使用單個輸入文件。
--skip-if-larger
如果轉換不值得,則不要寫入轉換過的文件。
--speed N
速度/質量從 1 (。最慢,質量最高,文件最小) 到 11 (。快速,不一致的質量,輕 comperssion )。 默認爲 3。建議保留默認值,除非你需要實時生成圖像( 比如。 貼圖平鋪)。較高的速度可以使用 256色,但不處理較低數量的顏色。
--nofs
停用 floyd dithering抖動。
--floyd=0.5
控制抖動( 0 = 無,1 = 全)的級別。 請注意,=
字符是必需的。
--posterize bits
通過位數減少調色板的精度。 當圖像將在低深度屏幕上顯示時使用( 比如。 16位 以ARGB444格式顯示或者壓縮紋理)。
--strip
不復制可選的PNG塊。 在 Mac ( 使用 Cocoa 讀取器時) 上總是刪除元數據。
簡單測試:
"pngquant.exe --force --ext .png --posterize ARGB444 --verbose 1.png"
自定義一個.png資源,在當前目錄運行以上代碼,然後就會發現,之前的資源所佔內存會小很多
# -*- coding:utf-8 -*-
import codecs
import sys
import os
import os.path
import shutil
def packerHandle(rootdir,tooldir):
for parent,dirnames,filenames in os.walk(rootdir):
for filename in filenames:
extra_name = filename.split('.')[-1]
if(str.find(extra_name,"png") == 0):
dstfilename = os.path.join(parent,filename)
yscmd = tooldir+"\pngquant.exe --force --ext .png --posterize ARGB444 --verbose" + " " + dstfilename
os.system(yscmd)
print(yscmd)
if __name__ == "__main__":
rootdir = sys.argv[1]
tooldir = sys.argv[2]
packerHandle(rootdir,tooldir)
pngquant下載鏈接:https://pan.baidu.com/s/1rnubqxu3Np5Y8rGCE0aG7g 提取碼: ierq