【注意】最后更新于 October 15, 2018,文中内容可能已过时,请谨慎使用。
{% github it-boyer width = 30% %}
pngquant
使用pngquant批量压缩png
- 编写批量处理脚本
vi compresspng.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import os
import sys
## 参考https://www.jianshu.com/p/bfa29141437e
# 执行文件路径:
# os.path.realpath(__file__)
# sys.argv[0]
# 当前图片目录:os.getcwd()
# 文件目录:sys.path[0]
# 获取终端参数
# sys.argv[1]
# 用法
# pngTo imgDir 默认目录路径
def GetFileFromThisRootDir(dir, ext = None):
allfiles = []
needExtFilter = (ext != None)
for root,dirs,files in os.walk(dir):
for filespath in files:
filepath = os.path.join(root, filespath)
extension = os.path.splitext(filepath)[1][1:]
if needExtFilter and extension == ext in ext:
allfiles.append(filepath)
return allfiles
if __name__ == '__main__':
rootDir=sys.path[0]
PngquantExe = rootDir + "/pngquant"
print(len(sys.argv))
if len(sys.argv) == 1: #当没有传目录参数时,默认获取当前目录
srcDir = os.getcwd()
else:
srcDir=sys.argv[1] #获取用户指定的目录路径
print(srcDir)
imgFiles=GetFileFromThisRootDir(srcDir, 'png')
suffix="_temp.png"
for f in imgFiles:
cmd = "\"" + PngquantExe + "\"" + " --ext " + suffix + " --force --speed=3 "+ f
os.system(cmd)
os.remove(f)
newfile=f.replace(".png", suffix)
os.rename(newfile, f)
print("压缩完成")
|
用法
pngTo
默认压缩当前目录的图片pngTo imgDir
imgDir用户指定的目录名
参考使用pngquant批量压缩png
tinypng
https://tinypng.com/developers
python 脚本批量处理