任性!Python批量压缩图片,无大小限制

任性!Python批量压缩图片,无大小限制

需求分析

在网站上传图片时,发现对图片的大小有要求,需要对大量的图片进行压缩
自己搭建网站的时候,也会希望服务器上的图片越小越好

百度一下,你就收费

百度一下【图片压缩】,弹出来的那些可以在线压缩的网站,要不对图片的数量、要不对图片的大小有要求,最后一般都会提醒你去充值会员。。

tinypng

google后发现了一个不错的网站https://tinypng.com/
但也有限制:最多20张图片,每张不能超过5MB,我刚好两个都不满足。。。

然后在它的网站上找到了 【DEVELOPER API】里面提供了python第三方库tinify
tinify支持一个月最多500张图片压缩,且不限制图片大小,已经能满足大部分人的需求了。
需要先在网站上用邮箱注册一下,然后拿到API-key才可以使用
安装很简单

pip install --upgrade tinify

使用也很简单

# coding=utf-8
# @Time : 2020/6/20 9:39 
# @Author : mxz
# @File : image_zip.py 
# @Software: PyCharm

import tinify
import os

tinify.key = ''
path = r""

for root, dirs, files in os.walk(path):
    for file in files:
        imgpath = os.path.join(root, file)
        print("compressing ..."+ imgpath)
        tinify.from_file(imgpath).to_file(imgpath)

补充

实际运行来看压缩一张图片需要的时间较长,不要以为是程序出错了
tinify除了支持压缩图片,还支持裁剪图片、给图片加metadata、保存到亚马逊和谷歌服务器的功能
具体见文档
https://tinypng.com/developers/reference/python

另外,tinypng网站实际提供了
HTTP、RUBY、PHP、NODE.JS、PYTHON、JAVA、.NET的api

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章