Python自动化工作:使用TinyPNG批量处理图像(更新中)
前言
2014年,曾追过一部HBO自制喜剧美剧。
Tinypng 工作原理
Tinypng是一家提供WebP, PNG and JPEG 图像智能压缩服务的网站。
第1步 在Tinypng 获取 API Key
Tinypng Web端有单次20张和单个文件5M的限制,同时TinyPNG官方提供了API,API限制每月500张,基本能够满足个人日常使用。另外通过API调用的方式也可以节省我们的操作成本,不再需要通过浏览器在Web端手动上传和下载图像,能够提高效率,节省时间。
访问链接:https://tinypng.com/developers
相关知识:API 和 API key
API 全称是应用程序接口(英语:application programming interface),操作系统或程序库提供给应用程序调用使用的代码,其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。
而 API key 用于识别正在调用 API 的调用方项目(如应用或网站)。
第2步 使用Python安装tinify库
Tinypng 提供的 Tinify API 允许我们压缩和优化WebP,JPEG和PNG图像。 它被设计为一个 REST 服务,可以和不同编程语言(如HTTP,Ruby,PHP)编写的客户端进行交互。
你可以通过安装 Python 包来安装 Tinify-python客户端:
1 | pip install --upgrade tinify |
源代码可在Github上找到。
第3步 tinify库入门
此处主要参考Tingpng官方文档进行编写,原本就写的很通俗易懂。
导入tinify库
1 | import tinify |
使用API key 认证
要使用 API,你必须提供你的 API 密钥。始终对你的 API 密钥保密!
1 | // 此处填入你在Tinypng注册后获得的API KEY |
所有请求都将通过加密的HTTPS连接发出。
压缩图像
你可以将任何WebP,JPEG或PNG图像上传到Tinify API进行压缩,
图像文件上传的形式共有三种:本地文件、二进制、URL。上传文件后,服务器会自动识别文件类型,根据类型自动调用TinyPNG或TinyJPG的压缩引擎。调用to_file
函数就可以将压缩优化过后的图像保存至本地。
选择一个本地文件作为源,并将其写入另一个文件。
1 | source = tinify.from_file("unoptimized.webp") |
也可以从缓冲区(带有二进制的字符串)上传图像并获取 压缩的图像数据。
1 | with open("unoptimized.jpg", 'rb') as source: |
你还可以提供图像的 URL,而不必上传它。
1 | source = tinify.from_url("https://tinypng.com/images/panda-happy.png") |
(未完待更新)