python練手項目0005

本項目採用的是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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章