玩蛇网提供最新Python编程技术信息以及Python资源下载!

批量调整图片尺寸的python脚本

python 培训

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

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

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

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

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

#coding:utf-8
#author:solu

import sys, os
from PIL import Image
from optparse import OptionParser

#遍历指定目录下的JPG图片,返回list
def 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 + name
				image_list.append(path)
	return image_list

#保存图片,默认保存在图片目录下的thumb
def resize_save(im, width, path):
	image_name = im.filename.split(os.sep)[-1]
	save_name = path + os.sep + image_name
	size = auto_resize(im, width)
	new_im = im.resize(size)
	print save_name
	new_im.save(save_name)

#调整宽高
def auto_resize(im, width):
	size = im.size
	height = 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.iplaypython.com

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/scripts-shell/ss2296.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-05-13 15:20 玩蛇网 www.iplaypython.com

上一篇:没有了
下一篇:Python方法获取百度地图数据示例源码
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部