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

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