使用pngquant壓縮png圖片的指令碼的實現
阿新 • • 發佈:2019-02-06
圖片的壓縮大都用到pngquant,官網:https://pngquant.org/
網上也有一大把由此而來的工具,這些在官網上都能看到。其壓縮效率還是蠻不錯的。今天,寫了個python指令碼,壓縮資料夾下所有的png圖片。
首先,你需要從官網上下載pngquant.exe(我是在win上寫的,Mac也有其程式).
原始碼:
#coding=utf-8 import os,sys file_path = [] def getNameList(dir,wildcard,recursion): exts = wildcard.split(" ") files = os.listdir(dir) for name in files: fullname = os.path.join(dir,name) if os.path.isdir(fullname) & recursion: getNameList(fullname,wildcard,recursion) else: for ext in exts: if(name.endswith(ext)): file_path.append(fullname) print(fullname) break def run(): getNameList(sys.path[0],".png .jpg",1) file_name_list = file_path for file_name in file_name_list: a = file_name.find(".png") if a <> -1: #--force --ext .png --quality 30-30 loading_role.png cmd = "pngquant --force --ext .png --quality 30-30 %s"%(file_name) print cmd os.popen(cmd) #os.system(cmd) print("add file %s"%(file_name)) if __name__ == "__main__": run()
getNameList:
這個函式的作用是得到當前資料夾下所有的檔案的路徑,並存儲在列表中
執行的時候,需要先判斷檔案是不是png,是png的話執行壓縮命令。
用Python指定cmd命令有2中方法,程式碼中已經給出。
這樣這個指令碼就OK了。