題目來自:Python 練習(xí)冊。題目1.5:你有一個目錄,裝了很多照片,把它們的尺寸變成都不大于 iPhone5 分辨率的大小。查看更多于本人博客:iii.run
使用python來處理圖片是非常方便的,下面提供一小段python處理圖片的代碼,需要安裝圖像處理工具包PIL(Python Image Library)。
安裝PIL
我用的是anaconda(一個開源的Python發(fā)行版本,包含了常用的數(shù)據(jù)科學(xué)庫。),其中自帶了PIL和Pillow,但是不能用,真是(? _ ?) 。
檢查自己電腦是否支持PIL,可以在Python shell 頁面輸入:
from PIL import Image

Image
如果沒有報(bào)錯的話,就可以代表正常。如果報(bào)錯說[importError: No module named images],使用pip卸載pillow,重新安裝應(yīng)該就可以了.
參考代碼
稍微注意一下,圖片的寬高是兩個數(shù)字,不能理所當(dāng)然的認(rèn)為圖片都是寬大于高的。
import os
from PIL import Image
pathDir='F:\CloudMusic'
os.chdir(pathDir)
def get_imglist(): #獲取照片名稱list
img_list=[]
list_dir=os.listdir(pathDir)
for x in list_dir:
if '.jpg' in x:
img_list.append(x)
else:
print("This is not a picture: "+x)
return img_list
def modify_imgsize():
for filename in get_imglist():
img=Image.open(filename)
if max(img.size)>1136:
value=max(img.size)/1136.0
newsize =(int(img.size[0]/value),int(img.size[1]/value))
newimg = img.resize(newsize,Image.ANTIALIAS) #修改大小
newimg.save('new_'+filename)
else:
print("This picture is availabe:"+filename)
if __name__ == '__main__':
modify_imgsize()