背景
之前做微网站项目的时候, 遇到图片资源太大, 导致网页加载速度极慢的情况。 于是用python做了个批量压缩图片的小工具, 该工具可遍历源目录下的所有文件并压缩, 最后把压缩好的图片按源目录的管理格式保存到目标目录。
如何使用
举个例子, 下面是压缩前的图片目录, 结构是这样的:
我在终端运行以下代码:
$ python compress_images.py ~/Desktop/dianqi/ ./dianqi/ 3
运行后会有如下输出:
这个命令的意思是压缩 ~/Desktop/dianqi/目录下的所有文件,并把压缩后的图片保存到 ./dianqi/目录下,压缩比例为3.。压缩比里越高, 压缩后的图片越小, 但质量会降低。
下面是压缩后的存放压缩图片的目录结构:
对比上面两幅图, 两个目录结构是完全一样的, 而且压缩后图片小了很多, 我们批量压缩图片的功能实现了。
如何实现
实现原理是这样的:遍历源目录,如果是文件则用PIL的resize函数压缩,如果是目录则递归调compress_images_in_dir函数, 直到处理完目录下所有文件后退出。
具体源码在这里,很简单, 有兴趣的朋友可以看下:
欢迎转载!