在前端开发中,图片占据了相当重要的位置。为了让页面加载的更快,提升用户的使用体验,我们需要对图片进行压缩。npm 包 imagemin-pngout 是一款非常优秀的图片压缩工具,本文将带你一起来学习它的使用方法。
什么是 imagemin-pngout?
imagemin-pngout 是基于 Node.js 的一款图片压缩工具,它可以对 PNG 格式的图片进行极其高效的压缩,从而减小图片的体积,提升页面加载速度。该工具在 github 上开源,具有稳定高效的特点。
如何使用 imagemin-pngout?
使用 imagemin-pngout,首先需要在本地安装它,可以通过 npm 进行安装。以下是具体的步骤:
- 初始化 npm 项目
打开终端,输入以下指令进行初始化:
npm init
按照提示输入相关信息,初始化成功后,会生成一个 package.json 文件。
- 安装 imagemin-pngout
输入以下指令进行全局安装:
npm install -g imagemin-pngout
安装成功后,我们就可以使用它对图片进行压缩了。如果想要局部安装,可以在项目目录下输入:
npm install imagemin-pngout --save-dev
- 使用 imagemin-pngout
imagemin-pngout 的使用非常简单,我们可以直接在终端中输入以下命令来对 png 图片进行压缩:
pngout input.png output.png
以上命令分别表示将 input.png 文件压缩后输出为 output.png 文件。
imagemin-pngout 的高级用法
imagemin-pngout 还支持很多高级用法,让我们深入了解一下。
- 输出不同压缩级别的图片
imagemin-pngout 支持多种压缩级别,可以通过 -s 参数指定,共六个级别,具体如下:
- -s0:最快的压缩级别
- -s1:快速压缩
- -s2:默认级别,完全平衡时间和压缩比
- -s3:高压缩比,时间稍微久一点
- -s4:更高的压缩比,时间更久
- -s5:最高的压缩比,时间非常久
我们可以通过以下指令来看到不同压缩级别所需的时间和压缩比:
pngout -st input.png
其中 -st 表示统计不同级别的时间和压缩比,执行后会得到如下结果:
Level Elapsed Output Bytes %Saved Composition ------------------------------------------------------------ 0 0ms 34396 5.87% 8/8 RGBA 1 0ms 33241 8.29% 8/8 RGBA 2 2ms 31331 12.08% 8/8 RGBA 3 13ms 26157 26.71% 8/8 RGBA 4 1m46s 23819 32.95% 8/8 RGBA 5 3m19s 23793 33.02% 8/8 RGBA
对于不同的图片和对压缩效果和时间的要求,我们可以根据需要自行选择压缩级别。
- 批量压缩图片
除了单独压缩一张图片外,imagemin-pngout 还支持批量压缩图片。我们可以在项目目录下,新建一个脚本文件 batch.sh,输入以下内容:
#!/bin/bash mkdir -p output for file in *.png do echo "Processing $file ..." pngout -s2 "$file" "output/$file" done echo "All done."
以上脚本文件表示将当前文件夹下的所有 png 图片都进行压缩,压缩级别为默认级别,输出到 output 文件夹下。
然后在终端中运行以下指令:
chmod +x batch.sh ./batch.sh
即可一键批量压缩 png 图片。
结语
本文介绍了 npm 包 imagemin-pngout 的使用方法,深入了解了它的高级用法,希望能对大家图片压缩方面的学习与实践有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f27a7e33b0ab45f74a8ba19