本項目採用的是https://github.com/Yixiaohan/show-me-the-code中所提供的練習項目,所有代碼均爲原創,轉載請註明,謝謝。
問題描述:練習0005的問題是有一個目錄,裝了很多照片,把它們的尺寸變成都不大於 iPhone5 分辨率的大小。
iPhone5的分辨率爲1136*640,需要將整個圖片放縮到這個尺寸範圍之內(可以比這個小)。具體代碼如下:
"""
Created on Tue Jan 03 13:13:32 2017
@author: sky
"""
from PIL import Image
def change_size(path):
with Image.open(path) as im:
w,h = im.size
print im.size
n = (w/1136.0 if (w/1136.0) >= (h/640.0) else h/640.0)
print w/n,h/n
im_new = im.resize((int(w/n),int(h/n)))
im_new.save('finish'+'.jpg')
if __name__ == '__main__':
change_size('1.jpg')
注意:也有人有image中的thumbnail來進行縮放,但是好像只能講圖片縮小,但不能放大(其實也可以,但是爲了效果更好),這裏採用了resize
在做除法的時候,分母必須帶小數點,不然會得到0,可以參考Python的運行機制問題
詳細代碼和結果,可以參考https://github.com/g8015108/exercise-for-python
過於image的更多資料可以參考http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html