溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用Python 代碼批量壓縮500 張圖片

發(fā)布時間:2021-12-02 17:38:35 來源:億速云 閱讀:311 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)如何用Python 代碼批量壓縮500 張圖片,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

這幾天,我在用 Github page + hexo  搭建個人網(wǎng)站,為了延續(xù)風(fēng)格,就想把配圖與文章一起遷移過去。這時候就出現(xiàn)了一個難題:我所用的圖片都是高清大圖,放到網(wǎng)站上會嚴重拖慢加載速度。因此,需要先把圖片壓縮,再上傳。

我把需求概括如下:

  • 批量壓縮圖片,現(xiàn)有約 200 張,后會再增

  • 是壓縮,不是切割截取,不改變圖片尺寸

  • 原圖片大部分是 10M - 30M,目標(biāo)是壓縮成 1M 以內(nèi),越小越好

按著這幾條線索,我搜索“批量壓縮圖片”、“圖片壓縮工具“、”批量處理圖片“……

開始的想法是找輕量級的圖片壓縮工具,簡單處理一下就好。然而不知是搜索的姿勢不對,還是篩選過濾信息的姿勢不對,結(jié)果都差強人意。

查找到的工具有本地與在線兩類,可試驗后都不太理想:有的軟件下載后才發(fā)現(xiàn)是付費的,有的在使用時直接導(dǎo)致程序卡死,有的壓縮率不夠需要多次壓縮,有的要求原始圖片大小不能超過 5 M,有的要求批量處理數(shù)量不超過 20 張,有的不支持批量壓縮……群內(nèi)小伙伴還幫忙推薦了“PS+批處理”、acdsee、甚至手機應(yīng)用 snapseed,都不合我意。

花了不少時間后,偶然看到有文章寫用 Python 來壓縮圖片。一文驚醒夢中人,我怎么沒想到呢?

PIL 是個強大的圖片處理庫,但只支持 Python 2,而且早已停止更新。有開發(fā)者在它基礎(chǔ)上改良并維護了 Pillow,支持 Python 3。之前有所耳聞,沒用過。于是查了幾篇教程和文檔。讀后發(fā)現(xiàn)它壓縮圖片的方法主要是等比例縮放、裁剪以及改變格式等,并非我所要的。

最后,終于找到了一種非常便捷,又十分滿足的方案,下面開始進入正題了。(不要嫌我啰嗦,探索的過程也很有趣)(噓,實際上是因為下面要介紹的方法太簡單,才區(qū)區(qū)幾行代碼,我實在忍不住強行加戲……)

----------------小心翼翼的分割線---------------

Tinypng 網(wǎng)站提供在線圖片壓縮服務(wù),是所有圖片壓縮工具中最好用的之一,但有限制:批量最多處理 20 張,且每張大小不允許超過 5M。

如何用Python 代碼批量壓縮500 張圖片  

這個網(wǎng)站非常良心,開放了免費的 API ,API 取消了每張大小的限制,只限定每個月處理 500 張圖片。這對我來說,已經(jīng)足足有余了。

下面介紹怎么使用它。第一步是在它網(wǎng)站上注冊,獲得專屬的 API_KEY。使用的是郵箱注冊,很簡單。

然后是安裝 package:

pip install --upgrade tinify
 
如何用Python 代碼批量壓縮500 張圖片  

接著是處理圖片:

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還提供圖片裁剪、加水印、保存壓縮圖片至云服務(wù)商(亞馬遜云、谷歌云)等功能,非常強大。除壓縮過程有點慢,其它無可挑剔。

經(jīng)過一番探索與比較,我確定這是目前的最優(yōu)方案,所以強烈分享給大家。

以上就是如何用Python 代碼批量壓縮500 張圖片,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI