Python教程/练习题

第1.5题:使用Image处理图片

2017-02-13  本文已影响39人  mmmwhy

题目来自:Python 练习册。题目1.5:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。查看更多于本人博客:李飞阳


使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(Python Image Library)。

安装PIL

我用的是anaconda(一个开源的Python发行版本,包含了常用的数据科学库。),其中自带了PIL和Pillow,但是不能用,真是(ಥ _ ಥ) 。
检查自己电脑是否支持PIL,可以在Python shell 页面输入:

from PIL import Image  
Image
如果没有报错的话,就可以代表正常。如果报错说[importError: No module named images],使用pip卸载pillow,重新安装应该就可以了.

参考代码

稍微注意一下,图片的宽高是两个数字,不能理所当然的认为图片都是宽大于高的。

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()  
上一篇下一篇

猜你喜欢

热点阅读