**
第
0005
题:
**
你有一个目录,装了很多照片,把它们的尺寸变成都不大于
iPhone5
分
辨率的大小。
思路:遍历给出目录下的图片,把大于
iPhone5
分辨率的图片都进行缩放。使用
Python
的
PIL
库对图片进行处理,
IPhone5
屏幕分辨率为
640
×
1136
,
将大于该分辨率的图片按照一
定比例缩放至适合大小并保存。
0005.
批量图片处理
.py
#!/usr/bin/env python
#coding: utf-8
import Image, os
#
源目录
myPath = '/home/bill/Pictures/'
#
输出目录
outPath = '/home/bill/Pictures/output/'
def processImage(filesource, destsource, name, imgtype):
'''
filesource
是存放待转换图片的目录
destsource
是存放输出转换后图片的目录
name
是文件名
imgtype
是文件类型
'''
imgtype = 'jpeg' if imgtype == '.jpg' else 'png'
#
打开图片
im = Image.open(filesource + name)
#
缩放比例
rate = max(im.size[0]/640.0 if im.size[0] > 640 else 0, im.size[1]/1136.0 if im.size[1] > 1136
else 0)
if rate:
im.thumbnail((im.size[0]/rate, im.size[1]/rate))
im.save(destsource + name, imgtype)
def run():
#
切换到源目录,遍历源目录下所有图片
os.chdir(myPath)
for i in os.listdir(os.getcwd()):
#
检查后缀
postfix = os.path.splitext(i)[1]
if postfix == '.jpg' or postfix == '.png':
processImage(myPath, outPath, i, postfix)