批量调整图片尺寸的python脚本,,图片尺寸太大,数量太多,


图片尺寸太大,数量太多,不方便存储,怎么办?看看下边的这个Python代码你就知道啦。

这是一个网友写的,写这段python代码的原因是,因为像素一般都比较大,一张就十多M了,不方便放入移动设备存放,于是写个小脚本压缩一下。

python新手,写得不好,还请包涵。

相关文章推荐:如何用Python方法获取图片的准确尺寸

批量调整图片尺寸的python脚本,源码如下:

#coding:utf-8#author:soluimport sys, osfrom PIL import Imagefrom optparse import OptionParser#遍历指定目录下的JPG图片,返回listdef walk_dir(dir):image_list = []for root, dirs, files in os.walk(dir):for name in files:ext = os.path.splitext(name)[1][1:]if (ext.lower() == 'jpg'):path = root + os.sep + nameimage_list.append(path)return image_list#保存图片,默认保存在图片目录下的thumbdef resize_save(im, width, path):image_name = im.filename.split(os.sep)[-1]save_name = path + os.sep + image_namesize = auto_resize(im, width)new_im = im.resize(size)print save_namenew_im.save(save_name)#调整宽高def auto_resize(im, width):size = im.sizeheight = int(float(width) / size[0] * size[1])return (int(width), height)if __name__ == '__main__':usage_msg = 'usage: %prog -p <image_path> -w <image_width>'parser = OptionParser(usage_msg)parser.add_option("-p","--path", dest = "image_path", help = u"存放相片的路径")parser.add_option("-w","--width", dest = "image_width", help = u"调整后的图片宽度(高度会自等比例缩放)")options, args = parser.parse_args()if not options.image_path or not options.image_width:parser.print_help()sys.exit(1)try:image_path = unicode(options.image_path, 'gbk')width = options.image_width#创建文件夹save_path = image_path + os.sep + 'thumb'if (not os.path.exists(save_path)):os.mkdir(save_path)image_list = walk_dir(image_path)for path in image_list:im = Image.open(path)resize_save(im, width, save_path)except Exception,e:print('Error:',e)#www.iplaypy.com

编橙之家文章,

评论关闭