活动地址:CSDN21天学习挑战赛
开发一款图片压缩工具(二):使用 pngquant 实现图片压缩
上一篇我尝试使用了 pillow 库对 png 图片进行了压缩,效果不好。这次我换用 pngquant 来压缩。
pngquant 是用于 PNG 图像有损压缩的命令行实用程序和库。压缩程序会显著减小文件大小(通常高达70%),并保持完全的alpha透明度。通过使用alpha通道将图像转换为更高效的8位PNG格式(通常比24/32位PNG文件小60-80%)。
pngquant 使用的算法主要是中值切割量化算法的改进版和 K-means 颜色校正。得到的图片颜色差异肉眼几乎无法察觉。
这是 pngquant 优化后的图片,几乎看不出区别:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y5WaSNV8-1587906286900)(https://i.loli.net/2020/04/26/auF7ZfdS1AJmqEP.jpg)]
这是 pillow 同样采用中值切割和 k-means 得到的优化效果, 云彩有明显颜色过渡不自然问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DFQtx71g-1587906286913)(https://i.loli.net/2020/04/24/Yw2V4m8OKjgQfMW.jpg)]
pngquant 压缩库安装
pngquant 提供了源码、命令行和 GUI 等多种形式。GUI 的工具目前来说还比较难用,并没有命令行方便,而源码形式可以通过 ctype 使用 python语言去调用 c 源码。但是目前对这方面还不怎么了解,可以后面再去使用 so 动态库等方式。
所以,先用命令行形式进行 PNG 压缩。
1,下载 windows安装包 或者 mac 和 linux 版本的安装包。
2,命令行输入 pngquant