【python案例】批量修改目录内的图片尺寸
假如我们有个目录内的图片有几十张,想把这些图片放到iphone5中做桌面,但是原来的图片分辨率太大,现在需要将这些图片分辨率改成我们需要的尺寸。
这种方案主要有两步需要注意的。
第一步,查找文件。
查找目录内的文件,然后批量去修改尺寸。
这里我们提供了两种简单的方法去查找文件。
第一种,用walk。
1 2 3 4 5 6 7 | # 第一种方法:用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。
1 2 3 4 5 6 | # 第二种方法:用listdir方法 for name in os.listdir(picdir): # 拼接文件 filename = os.path.join(picdir, name) print filename change_picsize(filename) |
第二步,修改尺寸。
修改尺寸的方法就比较简单了,首页得到原图片的宽和高,然后判断宽和高单独修改尺寸就可以了。
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/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案例】按序统计文本中单词出现的个数