任性!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