imagemin-cli
imagemin/imagemin-cli 是一个用 node.js 写的工具,调用的都是纯 CLI 的开源程序,所以平台兼容性好很多。其依赖的 imagemin 项目支持 imagemin-*
形式的 npm package 插件扩展,cli 默认的插件有这 4 个。
|
使用的时候会检测当前系统变量里有没有对应的可执行文件,没有的话会自动下载安装,真正做到了开箱即用。imagemin 在前端自动化工作流中有诸多支持,例如 imagemin-webpack-plugin,gulp-imagemin。
官方维护的插件列表和项目构建支持可见 github 下的 imagemin 组织 。
使用示例
--help
里给的例子:
|
ImageOptim-CLI
仅 Mac 可用,ImageOptim-CLI 包装了几个 Mac 下 GUI/CLI 图片压缩工具的调用,支持调用的 App 有:
Supported Apps:
ImageAlpha: https://pngmini.com
ImageOptim: https://imageoptim.com
JPEGmini Lite: https://itunes.apple.com/us/app/jpegmini-lite/id525742250
JPEGmini Pro: https://itunes.apple.com/us/app/jpegmini-pro/id887163276
JPEGmini: https://itunes.apple.com/us/app/jpegmini/id498944723
常见的 JPEG/PNG/GIF/SVG 等格式都可以压缩。
调用方式很暴力,直接硬编码了应用的路径。
|
所以先要提前安装好相应的 App。
安装
|
默认使用的是 ImageOptim,一个开源的 GUI 图片压缩工具,集成了针对各种格式图片的优秀开源压缩工具。
ImageOptim is a GUI for lossless image optimization tools: Zopfli, PNGOUT, OxiPNG, AdvPNG, PNGCrush, JPEGOptim, Jpegtran, Guetzli, Gifsicle, SVGO, svgcleaner and MozJPEG.
|
使用
处理 JPEG 格式还是挺快的。
|
处理 PNG 时有点慢,可能是因为使用底层的 pngquant 时的参数问题,计算量有点大。
|
如已经安装了 ImageAlpha ,加上参数 --imagealpha
,先调用 ImageAlpha,处理 PNG 的效率和速度都有很大提升。
|
CLI 提供了 --quality
和 --speed
两个细化的调整参数,仔细调整可能有更合适的速度/压缩率组合。
对于不同工具对不同格式和特性的压缩效果,作者给出了一份评测数据。