pngquant的使用教程,使用pngquant命令近乎无损压缩PNG图片大小减少70%左右
pngquant的使用教程
1、简介
pngquant
是一个命令行工具和一个用于有损压缩PNG图像的库。
转换显着减少文件大小(通常高达70%),并保留完整的alpha透明度。生成的图像与所有网络浏览器和操作系统兼容。
2、安装
下载地址:https://pngquant.org/releases.html
安装命令:
$ wget http://pngquant.org/pngquant-2.11.4-src.tar.gz $ tar -xzf pngquant-2.11.4-src.tar.gz $ cd pngquant-2.11.4 安装依赖:yum install libpng-devel $ ./configure --prefix=/opt/runtime/pngquant $ make && make install
ok ,安装完成。
注意:
pngquant -h 看是否正常,如果报:pngquant: error while loading shared libraries: liblcms2.so.2: cannot open shared object file: No such file or directory
重新装一下liblcms2 , yum install http://pkgrepo.linuxtech.net/el6/release/x86_64/liblcms2-2.4-1.el6.x86_64.rpm 解决
Options:
请参阅 pngquant -h
完整的选项列表。
--ext new.png
-
为输出文件名设置自定义扩展。默认
-or8.png
或被-fs8.png
使用。 --quality min-max
-
指示
最小值和最大值是范围0(最差)到100(完美)的数字,类似于JPEG。pngquant
使用达到或超过最高质量所需的最少量的颜色。如果转换结果的质量低于最低质量,图像将不会被保存(如果输出到标准输出,则会输出24位原始图像),pngquant
并将以状态码99退出。 -
pngquant --quality=65-80 image.png
--speed N
,-sN
-
速度/品质取舍从1(蛮力)到10(最快)。默认值为3. Speed 10的质量下降了5%,但比默认的速度快了8倍。
--iebug
-
IE6的解决方法,只显示完全不透明的像素。
pngquant
会使几乎不透明的像素完全不透明,并会避免创建新的透明颜色。 --version
-
将版本信息打印到标准输出。
-
-
从stdin读取图像并将结果发送到stdout。
--
-
停止参数的处理。这允许使用以开头的文件名
-
。如果您pngquant
在脚本中使用,建议在文件名前加上:pngquant $OPTIONS -- "$FILE"
算法
pngquant
使用中值切割量化算法的修改版本和附加技术来减轻中值切割的缺陷。
而不是分裂具有最大音量或颜色数量的盒子,而是选择盒子以最小化其中值的方差。
直方图是建立在基本感知模型的基础之上的,这样可以减少图像噪点区域的重量。
为了进一步改善颜色,在类似于梯度下降的过程中调整直方图(中值切割重复许多次,在表现不佳的颜色上重量更多)。
最后,使用Voronoi迭代(K均值)来校正颜色,这保证了局部最佳的调色板。
pngquant
在预乘alpha颜色空间中工作,以减少透明颜色的重量。
当重新映射时,误差扩散仅应用于若干相邻像素量化为相同值且不是边缘的区域。这避免了在没有抖动的情况下将视觉质量增加的区域。