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的这里

python pngquant 批量压缩png图片相关推荐

  1. Python实现批量压缩图片

    Python实现批量压缩图片 本文为大家分享了Python实现批量压缩图片的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ _ ...

  2. 在线批量压缩JPG图片-JpegMini

    2019独角兽企业重金招聘Python工程师标准>>> 之前有推荐过一个在线批量压缩PNG图片的网站TinyPng,这儿小觉再次推荐一个同类网站,专门在线批量压缩JPG图片的Jpeg ...

  3. Python脚本批量重命名图片

    Python脚本批量重命名图片 # -*- coding: utf-8 -*- """ Created on Tue Mar 23 13:34:59 2021@autho ...

  4. python怎么把图片压缩_使用Python轻松批量压缩图片

    在互联网,图片的大小对一个网站的响应速度有着明显的影响,因此在提供用户预览的时候,图片往往是使用压缩后的.如果一个网站图片较多,一张张压缩显然很浪费时间.那么接下来,我就跟大家分享一个批量压缩图片的方 ...

  5. python批量resize图片大小_如何用Python智能批量压缩图片?

    本文一步步为你介绍,如何用Python自动判断多张图片中哪些超出阈值需要压缩,且保持宽高比.如果你想了解Python图像处理的基础知识,欢迎动手来尝试. 痛点 我喜欢用Markdown写文稿,然后发布 ...

  6. 《自拍教程71》Python mediainfo批量重命名图片文件,AV专家必备!

    案例故事: 大部分带彩色屏幕的终端设备,不管是手机,车机,电视等等,都需要涉及图片的显示, 作为一名专业的多媒体测试人员,我们需要一堆的规范化标准的的图片测试文件, 但是发现图片资源名字命名的很随意比 ...

  7. 用python一键批量压缩备份文件,不必再用鼠标点点点

    很多人会定期压缩备份一下自己的文件,但每次一个个文件压缩移动很麻烦,整理耗时又费力. 面对这些问题,只要用Python的zipfile包,几句代码就够了,大大提高了工作效率! 今天我们就来教大家如何使 ...

  8. 【python】批量压缩文件夹

    文章目录 下载 场景 使用 思路+代码 下载 百度云 提取码:cyyy 链接:https://pan.baidu.com/s/1-RNZoS9hUvNodQZhF26hXA?pwd=cyyy 提取码: ...

  9. Python实用案例,Python脚本,Python实现批量下载百度图片

    往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 Python实现每日更换"必应图片"为"桌 ...

最新文章

  1. 47种常见的浏览器兼容性问题大汇总
  2. oracle11 区分大小写,修改Oracle11g用户密码不区分大小写
  3. redis value最大值_Redis 的 maxmemory 和 dbnum 默认值都是多少?对于最大值会有限制吗?...
  4. bzoj 4372: 烁烁的游戏 动态点分治_树链剖分_线段树
  5. win10连接计算机,如何在win10中连接计算机和打印机
  6. 【转】Scott_ASP.NET MVC框架(第三部分) 把ViewData从控制器传到视图
  7. Gradle里Copy任务(task)的使用
  8. Python: 反方向迭代一个序列
  9. .NET 6新特性试用 | 自动生成高性能日志记录代码
  10. [蓝桥杯2015决赛]胡同门牌号-模拟+枚举
  11. null导入失败_当null检查非常失败时
  12. 49session的生命周期实例
  13. java序列化与反序列化总结
  14. 乘法口诀表java加表格_Java 面试 - 打印九九乘法口诀表
  15. Santander价值预测挑战(Feature Select + BayesSearchCV + LightGBMRegressor)
  16. Android实现思维导图功能,Android打造思维导图
  17. python爬取京东商品信息_python爬虫:爬取京东商品信息
  18. 用户故事 | 李兆龙:博观而约取,厚积而薄发
  19. 【手把手教程】uniapp + vue 从0搭建仿斗鱼虎牙直播App:腾讯云MLVB移动直播实践连麦PK+带货
  20. 麒麟Linux启动目录,Ubuntu Kylin优麒麟文件管理器篇:介绍,类别,结构,文件系统目录,使用...

热门文章

  1. PTA基础编程题目集 7-8~7-10(C++)
  2. 轻巧画图工具_网页设计师使用的20种超轻巧典雅字体
  3. 普乐蛙VR台风逃生体验VR灾害自救模拟系统VR科普知识设备
  4. PyTorch 从零训练卷积神经网络(Convent)
  5. 东京残奥会开幕!奥林匹克运动员一同开展200余项线上体验
  6. DDT+BeautifulReport测试报告中用例描述修改
  7. POJ-1456 Supermarket【贪心】
  8. oid隐形码_OID编码规则 | 学步园
  9. mac允许允许任何软件执行(任何来源)
  10. Steam流和方法引用: