Member-only story

如何用 Python 智能批量压缩图片?

Shuyi Wang
16 min readSep 26, 2021

--

本文一步步为你介绍,如何用 Python 自动判断多张图片中哪些超出阈值需要压缩,且保持宽高比。如果你想了解 Python 图像处理的基础知识,欢迎动手来尝试。

Photo by JJ Ying on Unsplash

痛点

我喜欢用 Markdown 写文稿,然后发布到不同写作平台。我的好友数字游民 Jarod 称其为 “矩阵式发布”。能这样做的前提,是 Markdown 为我们带来了极低的边际发布成本。试想如果每个写作平台,都需要我手动插入 20–30 张图片,想想都眼晕,我估计立刻会打消发布念头。

我使用七牛作为图床。图片链接成功转换后,选择一款渲染工具,预览文稿格式,看图片、表格、标题等特殊样式是否显示正确。

我曾经用过多种渲染工具。最近我一直在用 Md2All

这款工具最大的特点,是能保证粘贴到各个写作平台时,代码不会乱掉。

点击右上方的 “复制” 按钮,你就可以在任何一个写作平台上,开启富文本编辑器,然后粘贴进去。

工作进行到这一步,已近大功告成。这时,如果你遇到 “图片上传失败” 的报错,想必会很影响心情。

图片上传失败,原因可能有很多。

许多情况下,只是单纯因为网络拥塞。只要你本着愚公移山的精神,往复重新粘贴,总会好的。

但是微信公众平台是个例外。

你时常会遇到这种情况 — — 就是那两张图片,死活也无法正常传上去。

踩坑多次,不得不手动上传图片后。我终于发现了问题所在 — — 微信公众平台对图片大小有限制。

一旦你要上传的图片超过 2M,就无法正常粘贴上传了。

莫非我写作文章时,还要一一检验每张插图的大小?超过阈值的图片压缩,然后再上传?

对我这种插图爱好者来说,这个工作太过琐碎和枯燥了。

你可能会问,不是有许多工具可以批量修改图片大小吗?例如JPEGmini和TinyPNG之类的?

确实有,但是它们不完全符合我的需求。

--

--

Shuyi Wang
Shuyi Wang

Written by Shuyi Wang

PhD in Information Science. Associate Professor at Tianjin Normal University. Former Adjunct Faculty at UNT. First Prize Winner of HackNTX 2018.

No responses yet