欢迎来到 岁月小筑

多进程图片压缩Python脚本

前言

找了半个GG都没找到能用的多线程图片压缩,只好用Python自己造个轮子啦

辣鸡代码,看看就好

简介

使用须知

  • 本脚本主要是为了对图片进行批量压缩而写的,所以没有调整图片大小等等之类的功能
  • 本脚本使用的是Python多进程,因为Python多线程就是个幌子
  • 本脚本使用的tkinter外观不友好,不过作者本人表示并不关心这些外在的东西(确信)
  • 本脚本主要吃的是CPU和磁盘IO,如果4核心8线程的CPU开16进程以上,仍然无法跑满CPU,请检查是不是硬盘IO太低了
  • 本脚本测试是基于Pillow原版,因为我的Win7死活没法装上Pillow-simd,欢迎使用Pillow-simd的童鞋提供测试数据,不知道效率能提高多少

功能简介

  • JPEG质量最大值建议为95,再高就没有质量的提升,而且文件会变得很大(来自Pillow官方文档)
  • 进程数量取决于CPU,我的I7 4核8线程,压缩大图片(相机相片)一般开16进程,压缩小图片12进程就够了
  • 保留Exif是对相机相片来说的,普通图片不需要考虑
  • 压缩图片时遇到不是图片的文件会跳过,不会采取任何措施
  • 本脚本会递归寻找目录及所有子目录下的图片,所以最好选择一个干净的文件夹作为源文件夹
  • 选中保持目录结构会自动在输出目录创建与输入目录相同的目录结构,不选中则所有图片都会保存在输出目录的根目录下

依赖

脚本下载

Github gist: https://gist.github.com/littleplus/1e7331e389d346230a563306ed9d47e8

脚本源代码

处理效率

500张图片,75质量

本脚本(12进程):8s

Caesium:41s

具体效果请自行体验

运行截图

多进程图片压缩Python脚本

点赞

发表评论

电子邮件地址不会被公开。