npm.io
0.5.2 • Published 5 years agoCLI

kuma-imagemin

Licence
GPL v3
Version
0.5.2
Deps
15
Size
4.2 MB
Vulns
2
Weekly
0

kuma-imagemin

License: GPL v3

一个基于mozjpeg和pngquant压缩算法进行图片压缩的小工具。它通过将两个压缩算法的代码由C编译成Javascript,可以在浏览器与Node环境下运行,同时降低了依赖安装的难度。

jpeg 压缩方法基于mozjpeg-js

png 压缩方法基于pngquantjs

安装

npm install kuma-imagemin

使用

命令行调用
# 压缩文件
npx kuma-imagemin min <文件(夹)路径>

# 查看帮助
# 更多操作请自行看帮助信息
npx kuma-imagemin -h
方法调用
const fs = require('fs-extra');
const {
  minPng,
  minJpg,
  minDir,
  clearOrigin,
  clearLog,
  log,
  isMin,
  resetByOrigin,
} = require('kuma-imagemin');

// 压缩png
const pngRes = minPng(fs.readFileSync('test.png'), {
  quality: '60-80',
});
// 压缩后的png数据,格式为 Uint8Array
console.log(pngRes.data);
// 压缩率
console.log(pngRes.ratio);

// 压缩jpg
const jpgRes = minJpg(fs.readFileSync('test.png'), {
  quality: 0.6,
});
// 压缩后的jpg数据,格式为 Uint8Array
console.log(jpgRes.data);
// 压缩率
console.log(jpgRes.ratio);

// 压缩指定文件夹
minDir('img', {
  // 是否生成备份源文件
  backup: true,
  // 是否强制压缩文件
  force: false,
});

// 删除指定文件夹内的备份源文件
clearOrigin('img');

// 删除插件压缩日志(记录所有被压缩过文件的md5,删除后所有文件都当成未被压缩)
clearLog();

// 添加压缩日志记录
log({
  'img/test.png': '38d034676322c1c6350190ccfc3eca58' // md5
});

// 判断一个文件是否已经被压缩(依赖日志记录)
isMin('img/test.png');

// 用备份源文件还原压缩后的文件(需要在压缩时保留备份源文件)
resetByOrigin('img');

License

由于mozjpeg-js使用BSD 3协议,pngquantjs使用GPL v3协议。故kuma-imagemin只能使用GPL v3协议。

Keywords