需求

在使用gitbook截图后保存在本地的图片都比较大,如果直接上传到文件服务中,也是占用比较多的空间。

所以这次考虑试试这个pngquant压缩工具。

官网

https://pngquant.org/

Gihub

https://github.com/kornelski/pngquant

python 实现

访问https://pngquant.org/直接下载 win 和 mac 平台的命令行工具包:

python3 使用pngquant压缩图片_python3
  • Binary for macOS

  • Binary for Windows

解压后的工具包

因为我当前使用win10系统,下载解压后工具包如下:

python3 使用pngquant压缩图片_pngquant_02

工具的命令行使用

https://pngquant.org/

python3 使用pngquant压缩图片_python3_03

那么如果python调用的话,可以采用os.system(cmd)的方式来执行这命令即可。

压缩图片示例代码

import os
import os.path
import sys


SelfPath = sys.path[0]

# 压缩工具
PngquantExe=SelfPath+".\pngquant\pngquant.exe" # 参考 https://pngquant.org/ 工具来实现的

def compression(filename):
# cmd = PngquantExe + " --force " + filename + " --quality 50 -o " + filename # 压缩50%的质量,直接覆盖压缩至源文件
cmd = PngquantExe + " " + filename + " --quality 50 -o out.png" # 压缩50%的质量,输出图片名称为out.png
os.system(cmd)

if __name__ == '__main__':
compression('1563928708294.png')

文件结构如下:

python3 使用pngquant压缩图片_gitbook_04

查看压缩过后的图片大小:

python3 使用pngquant压缩图片_gitbook_05

可以看到压缩图片从1004KB至282KB,压缩率还是很可观的。而且保持图片原来的尺寸,不需要裁剪图片大小。