第1.5题:使用Python处理图片
题目来自:Python 练习册。题目1.5:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(Python Image Library)。
安装PIL
我用的是anaconda(一个开源的Python发行版本,包含了常用的数据科学库。),其中自带了PIL和Pillow,但是不能用,真是(ಥ _ ಥ) 。
检查自己电脑是否支持PIL,可以在Python shell 页面输入:1
from PIL import Image
如果没有报错的话,就可以代表正常。如果报错说[importError: No module named images],使用pip卸载pillow,重新安装应该就可以了.
参考代码
稍微注意一下,图片的宽高是两个数字,不能理所当然的认为图片都是宽大于高的。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28import 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()
第1.5题:使用Python处理图片