在发布文章时,为了节省服务器硬盘空间,博主通常会压缩并优化文章中的图片。之前,博主一直使用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 | #!/usr/bin/env python |
感谢脚本作者GcsSloop,以及elfisworking修复了Python3中的错误。博主对代码进行了少量修改,以支持webp格式的图片。