Python使用pngquant实现批量压缩图片
生活随笔
收集整理的這篇文章主要介紹了
Python使用pngquant实现批量压缩图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自己寫的一個批量壓縮圖片的小工具,文件結構如下圖
使用方法:將文件夾拖到bat.bat上,即可實現對文件夾內的圖片壓縮。
.bat文件中的代碼:
@echo off set floder=%1% set p_path=%~dp0 python %p_path%\reducePng.py -p %floder% pausepython代碼實現如下:
#!/usr/bin/python # -*- coding:UTF-8 -*-import os,os.path import sys,getopt import shutil#壓縮圖片 def reducePic(srcFile,dstFile):cmd=g_curDir+'\\pngquant.exe --force --verbose --speed=1 --ordered 256 %s --output %s' %(srcFile, dstFile)os.system(cmd)#循環遞歸遍歷文件夾 def traverse(file_dir):fs = os.listdir(file_dir)for dir in fs:tmp_path = os.path.join(file_dir, dir)if not os.path.isdir(tmp_path):tu=os.path.splitext(tmp_path)print(tmp_path)if tu[1] in g_reduceFileExt:newPath=tmp_path.replace(g_srcPath,g_dstPath)print(newPath)reducePic(tmp_path,newPath)else:createFloder(tmp_path.replace(g_srcPath,g_dstPath))traverse(tmp_path)def getFloderPath():opts,args=getopt.getopt(sys.argv[1:],"p:s:")file_path=""for op,value in opts:if op == "-p":file_path=valuereturn file_pathdef createFloder(dstpath):if not os.path.exists(dstpath): os.mkdir(dstpath) def main():#當前路徑global g_curDirg_curDir=os.path.dirname(os.path.realpath(__file__))#需要壓縮的圖片擴展名global g_reduceFileExtg_reduceFileExt=['.png','.jpg']#壓縮后的圖片存儲目錄global g_dstPathg_dstPath=g_curDir+'\\reduces'createFloder(g_dstPath)global g_srcPathg_srcPath=getFloderPath()print(g_srcPath)traverse(g_srcPath)print('files reduce success')if __name__ == '__main__':main()附:
pngquant工具官網:https://pngquant.org/
參數詳情如下圖:
總結
以上是生活随笔為你收集整理的Python使用pngquant实现批量压缩图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于OpenGrADs的环境变量path
- 下一篇: python编写米字格的步骤,word2