1. 程式人生 > >使用Python批量對圖片進行壓縮處理

使用Python批量對圖片進行壓縮處理

這兩天在對網站伺服器進行遷移的過程中發現歷史積累的圖片附件炒雞多,許多都是未經壓縮直接從相機裡面拷出來上傳的原始解析度尺寸,相當浪費空間,而網站頁面上進行圖片顯示其實只需要寬度能達到700px就夠了,於是就萌生了這個想法,怎麼批量把網站上所有圖片批量調整一下解析度進行空間壓縮,嘿~您別說,Python還真對得起咱zei張臉,簡直不能好用更多。廢話不說了,直接走起~

任務目標

對指定資料夾中(包含所有子目錄) 所有.jpg檔案進行批量尺寸調整,並覆蓋儲存原來的檔案

實現環境

Python 3.6.5

所需擴充套件包:pillow,glob(忘了是以前裝過還是環境自帶的就有了,如果沒有那就pip install一下)

實現程式碼

from PIL import Image
import os
import glob

size = (500, 500)   # 定義要調整成為的尺寸(PIL會自動根據原始圖片的長寬比來縮放適應設定的尺寸)
for infile in glob.glob("d:/tmp/**/*.jpg", recursive=True):     # glob.glob()用來進行模糊查詢,增加引數recursive=True後可以使用**/來匹配所有子目錄
    f, ext = os.path.splitext(infile)       # 分離檔名和字尾
    img = Image.open(infile)        # 開啟圖片檔案
    img.thumbnail(size, Image.ANTIALIAS)        # 使用抗鋸齒模式生成縮圖(壓縮圖片)
    img.save(f+".jpg", "JPEG")      # 儲存成與原檔名一致的檔案,會自動覆蓋原始檔

結束語

過程的實現主要是使用了PIL裡面Image包的thumbnail方法對圖片進行縮小處理,而這個方法原本是做縮圖用的,我們在設定好合適的尺寸後,用於調整圖片大小也是很方便的。