python pngquant 批量压缩png图片

  1. 用pngquant压缩一个文件夹里所有图片 或 压缩一个文件夹里所有一级子文件夹里的图片
  2. 压缩后的图片分辨率调整为原来的0.5倍(根据自己的情况调整)
  3. 计算压缩前后的图片大小、压缩率和压缩用时

由于pngquant不能压缩分辨率,所以pngquant压缩完仍然有可能比较大,于是再次在compress_resize函数中加上Pillow库压缩分辨率。

pngquant_resize_1() 函数 压缩指定路径下的一级子文件夹里的所有png图片,新的压缩图片覆盖源文件。
pngquant_resize_2() 函数 输入源文件夹和目标文件夹压缩源文件夹里所有图片,生成压缩图片到目标文件夹

需要安装pngquant,将pngquant.exe放到python安装目录下的Scripts文件夹里,Scripts文件夹路径加到环境变量。

需要注意的:

  1. 如果需要压缩的文件夹里面有子文件夹,那么只会压缩子文件夹里的图片,并不会压缩子文件夹里子文件夹里的图片,你可以自己改一下,如果要遍历所有子文件夹的图片,用os.walk()就行了。
  2. 我这里使用的是pngquant压缩图片,你需要在cmd里输入pngquant --help查看pngquant的帮助文档
  3. 这里的计算压缩后的图片的大小,并计算压缩率,计算压缩过程的耗时,只是为了看看压缩效果,如果你用不上,可以删掉这些。
  4. 压缩的是png图片。如果是jpg,没试过,感觉pngquant大概不行。
  5. 有一个坏消息是,压缩完图片,再用压缩软件打成压缩包,基本上无法压缩了,所以有需求的人压缩时pngquant的quality和resize的宽高比需要好好考虑。。

代码放在github的这里

猜你喜欢

转载自blog.csdn.net/weixin_50624398/article/details/128277274
今日推荐