10行Python代码批量压缩500张图片

这几天,我在用 Github page + hexo 搭建个人网站,为了延续风格,就想把配图与文章一起迁移过去。这时候就出现了一个难题:我所用的图片都是高清大图,放到网站上就严重拖慢了加载速度。因此,需要先把图片压缩,再上传。

我把需求概括如下:

  • 需要批量压缩图片,现有大约 200 张,后会再增
  • 是压缩,不是切割截取,不改变图片尺寸
  • 原图片大部分是 10M - 30M,目标是压缩成 1M 以内,越小越好

Tinypng 网站提供在线图片压缩服务,是所有图片压缩工具中最好用的之一,但它有所限制:批量最多处理 20 张,且每张大小不允许超过 5 M。

这个网站非常良心,开放了免费的 API ,API 取消了每张大小的限制,只限定每个月处理 500 张图片。这对我来说,已经足足有余了。

下面介绍怎么使用它。第一步是在它网站上注册,获得专属的 API_KEY。使用的是邮箱注册,很简单。

然后是安装 package:

pip install --upgrade tinify

接着是处理图片:

import tinify

import os

tinify.key = '此处填入你的key'

path = "C:\\Users\\yunpoyue\\Pictures\\cat" # 图片存放的路径

for dirpath, dirs, files in os.walk(path):

for file in files:

imgpath = os.path.join(dirpath, file)

print("compressing ..."+ imgpath)

tinify.from_file(imgpath).to_file(imgpath)

不到 10 行代码,轻轻松松就批量压缩图片,简直不要太爽!20 M 的图片能压缩到 2 M,压缩率达到惊人的 90%,成绩喜人。

它的 API 还提供图片裁剪、加水印、保存压缩图片至云服务商(亚马逊云、谷歌云)等功能,非常强大。除了压缩过程有点慢,其它无可挑剔。

经过一番探索与比较,我确定这是目前的最优方案,所以强烈分享给大家。

以上是 10行Python代码批量压缩500张图片 的全部内容, 来源链接: utcz.com/a/12532.html

回到顶部