【python案例】批量修改目录内的图片尺寸
假如我们有个目录内的图片有几十张,想把这些图片放到iphone5中做桌面,但是原来的图片分辨率太大,现在需要将这些图片分辨率改成我们需要的尺寸。
这种方案主要有两步需要注意的。
第一步,查找文件。
查找目录内的文件,然后批量去修改尺寸。
这里我们提供了两种简单的方法去查找文件。
第一种,用walk。
# 第一种方法:用walk方法
for root, dirs, files in os.walk(picdir):
for name in files:
# 拼接文件
filename = os.path.join(root, name)
print filename
change_picsize(filename)
第二种方法,用listdir。
# 第二种方法:用listdir方法
for name in os.listdir(picdir):
# 拼接文件
filename = os.path.join(picdir, name)
print filename
change_picsize(filename)
第二步,修改尺寸。
修改尺寸的方法就比较简单了,首页得到原图片的宽和高,然后判断宽和高单独修改尺寸就可以了。
#!/usr/bin/python
# -*- coding: utf-8 -*-
from PIL import Image
import os
#iPhone 5显示屏分辨率
i5size = (1136, 640)
# 获取文件夹里面所有的文件
def change_size(picdir):
# 第一种方法:用walk方法
for root, dirs, files in os.walk(picdir):
for name in files:
# 拼接文件
filename = os.path.join(root, name)
print filename
change_picsize(filename)
# 第二种方法:用listdir方法
# for name in os.listdir(picdir):
# # 拼接文件
# filename = os.path.join(picdir, name)
# print filename
# change_picsize(filename)
# 修改图片尺寸
def change_picsize(filename):
im = Image.open(filename)
# 获取图片宽和高
w = im.width;
h = im.height;
# 图片宽大于尺寸缩放
if(w > i5size[0]):
im = im.resize((i5size[0], h))
else:
pass
# 图片高大于尺寸缩放
if(h > i5size[1]):
im = im.resize((im.width, i5size[1]))
else:
pass
# 保存图片
im.save(filename.split('.')[0] + '_2.'+filename.split('.')[1])
if __name__ == '__main__':
change_size('source')
最后看看我们目录内的图片尺寸。

【python案例】将生成的优惠券放入到redis中 【python案例】按序统计文本中单词出现的个数