前言
相比于一些APP或者在线网站,有时候我们的业务工程里需要集成压缩图片的功能,node环境下,imagemin 就非常适合做这件事情。
概述
imagemin
是一种插件模式的压缩工具,需要根据所需压缩图片的格式来按需加载对应的插件。
npm install imagemin
npm install imagemin-jpegtran // OR imagemin-mozjpeg
npm install imagemin-pngquant
npm install imagemin-svgo
npm install imagemin-imagemin-webp
使用方法
- 压缩目录images下的图片文件,输出文件到目录下:
import imagemin from 'imagemin';
import imageminMozjpeg from 'imagemin-mozjpeg';
import imageminPngquant from 'imagemin-pngquant';
(async () => {
const files = await imagemin(['images/*.{jpg,png}'], {
destination: 'build',
plugins: [
imageminMozjpeg({
quality: 50,
}),
imageminPngquant({
quality: [0.5, 0.8]
})
]
});
console.log(files);
})();
- 修改成函数式:传入图片的base64,输出压缩后的base64
import imagemin from 'imagemin';
import imageminMozjpeg from 'imagemin-mozjpeg';
import imageminPngquant from 'imagemin-pngquant';
(async () => {
const base64Str = '';
const ogBuffer = Buffer.from(base64Str, "base64");
const files = await imagemin.buffer(ogBuffer, {
plugins: [
imageminMozjpeg({
quality: 50,
}),
imageminPngquant({
quality: [0.5, 0.8]
})
]
});
console.log(files.toString('base64'));
})();