標籤:python pil 圖片處理
第 0005 題:你有一個目錄,裝了很多照片,把它們的尺寸變成都不大於 iPhone5 解析度的大小。
思路:遍曆給出目錄下的圖片,把大於iPhone5解析度的圖片都進行縮放。使用Python的PIL庫對圖片進行處理,IPhone5螢幕解析度為640 × 1136,將大於該解析度的圖片按照一定比例縮放至適合大小並儲存。
0005.批量圖片處理.py
#!/usr/bin/env python#coding: utf-8import Image, os# 來源目錄myPath = ‘/home/bill/Pictures/‘# 輸出目錄outPath = ‘/home/bill/Pictures/output/‘def processImage(filesource, destsource, name, imgtype): ‘‘‘ filesource是存放待轉換圖片的目錄 destsource是存放輸出轉換後圖片的目錄 name是檔案名稱 imgtype是檔案類型 ‘‘‘ imgtype = ‘jpeg‘ if imgtype == ‘.jpg‘ else ‘png‘ #開啟圖片 im = Image.open(filesource + name) # 縮放比例 rate = max(im.size[0]/640.0 if im.size[0] > 640 else 0, im.size[1]/1136.0 if im.size[1] > 1136 else 0) if rate: im.thumbnail((im.size[0]/rate, im.size[1]/rate)) im.save(destsource + name, imgtype)def run(): # 切換到來源目錄,遍曆來源目錄下所有圖片 os.chdir(myPath) for i in os.listdir(os.getcwd()): # 檢查尾碼 postfix = os.path.splitext(i)[1] if postfix == ‘.jpg‘ or postfix == ‘.png‘: processImage(myPath, outPath, i, postfix)if __name__ == ‘__main__‘: run()
Python Show-Me-the-Code 第 0005 題 批量圖片處理