Win10系统下利用Python脚本与TinyPNG API批量优化图片

在发布文章时,为了节省服务器硬盘空间,博主通常会压缩并优化文章中的图片。之前,博主一直使用TinyPNG的网页版来处理图片。两年前,博主计划建立图站,收集了大约14万张图片,这时发现网页版处理图片效率较低,于是注意到了TinyPNG官方认证的第三方工具。经过筛选,博主选择了TinyGUI,它通过TinyPNG的API可以一次性处理大量图片。虽然图站后来关闭了,但TinyGUI一直保留着,用于处理大量图片。直到今年初,博主觉得TinyGUI还不够简便,于是在TinyPNG官网寻找更高效的工具,最终发现了Python脚本,使用后感觉非常满意。

TinyPNG:https://tinypng.com

TinyPNG API:https://tinypng.com/developers

TinyGUI WIN 客户端:https://github.com/chenjing1294/TinyGUI

Python 项目地址:https://github.com/GcsSloop/TinyPng

Python 修复PR:https://github.com/GcsSloop/TinyPng/pull/5 (修复Python3中的打印函数错误)

博主使用的设备信息:

系统版本:Windows 10 IoT 企业版 LTSC (即2021 LTSC)

Python版本:3.11.0

在Win10系统下使用TinyPNG的Python脚本非常简单。只需将tinypng.py复制到需要压缩的图片文件夹中,然后在文件夹内打开CMD窗口,执行python tinypng.py即可。脚本会在当前文件夹内创建一个名为tiny的文件夹,处理后的图片将存放在这里。关于Win10系统下Python的安装及环境变量设置,博主未作详细介绍,建议自行搜索相关教程。需要注意的是,该脚本需要调用TinyPNG的API,用户需在官网申请API密钥,并在脚本中指定位置填写。

脚本功能:支持png/jpg/jpeg/webp格式的图片压缩,具体参数用法详见项目说明文档。脚本的主要逻辑是遍历指定目录下的图片文件,上传至TinyPNG进行处理,然后下载到本地。

脚本代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os
import sys
import os.path
import click
import tinify

tinify.key = "7kWg8Tsr9vctq89sQGzFQ1Wv2Wmnd2RP" # API KEY
version = "1.0.1" # 版本

# 压缩的核心
...

感谢脚本作者GcsSloop,以及elfisworking修复了Python3中的错误。博主对代码进行了少量修改,以支持webp格式的图片。