npm 包 pngquant 使用教程

阅读时长 3 分钟读完

在前端开发中,优化图片是提高网站性能的重要一环。其中,压缩 PNG 图片可以有效减小图片大小,提高页面加载速度。而 pngquant 是一个强大的用于 PNG 图片有损压缩的 npm 包,本篇文章将为你详细介绍它的使用方法。

安装

首先需要通过 npm 安装 pngquant:

使用

1. 命令行

可以将 pngquant 作为命令行工具使用,压缩单张图片的命令如下:

其中,input.png 是要被压缩的图片路径,output.png 是压缩后保存的路径。

也可以对整个文件夹内的所有 PNG 图片进行批量压缩,命令如下:

其中,input_folder/*.png 表示要压缩的 PNG 图片所在的文件夹(当前目录下的 input_folder 文件夹),output_folder/ 是压缩后保存的路径。

2. Node.js 脚本

除了作为命令行工具使用,pngquant 还可以被集成到 Node.js 脚本中使用。以下是一个简单的示例:

-- -------------------- ---- -------
----- -- - --------------
----- ---- - ----------------
----- -------- - --------------------

----- --------- - -------------------- -------------
----- ---------- - -------------------- --------------

------------------------------
  ------
    --- ----------
      -------- ----- -----
    --
  -
  ----------------------------------------

上述代码中,首先使用 fspath 模块获取输入文件和输出文件的路径。然后通过 fs.createReadStream() 方法读取输入文件,再通过 new PNGQUANT() 创建 pngquant 实例,并设置压缩质量为 60% ~ 80%。

最后将 pngquant 实例作为可写流传递给 fs.createWriteStream() 方法,用于保存压缩后的 PNG 图片。

高级选项

除了基本的使用方法外,pngquant 还提供了许多高级选项,用于更细致地控制压缩效果。以下是一些常用的高级选项:

  • quality: 压缩质量,可以是一个 [min, max] 数组或者一个 number。默认值为 undefined,即自动选择最佳压缩质量。
  • speed: 压缩速度,可以是一个整数(1~11),越大压缩速度越快但压缩率越低。默认值为 3
  • posterize: 颜色量化级别,可以是一个整数(2~256),表示压缩后的图片颜色数。默认值为 undefined
  • nofs: 是否禁用 Floyd-Steinberg 抖动算法。默认为 false,即开启抖动。

更多高级选项请参考官方文档。

结语

本篇文章为你介绍了 pngquant 的安装和使用方法,并详细解释了一些常用的高级选项。希望能够帮助你在前端开发中更好地进行 PNG 压缩优化。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/54503

纠错
反馈