1.使用 imagemin cd进入项目根目录
npm install imagemin
2.创建一个名为 imagemin.js 的新文件,写入以下内容:
const imagemin = require('imagemin');
const PNGImages = 'static/images/*.png';
const JPEGImages = 'static/images/*.jpg';
const output = 'build/images';
3.运行 node imagemin.js
适用于呈现色彩丰富的图片
用 MozJPEG 压缩 jpeg 1.npm install imagemin-mozjpeg 2.以下内容添加到 imagemin.js 中
const imageminMozjpeg = require('imagemin-mozjpeg');
const optimiseJPEGImages = () =>
imagemin([JPEGImages], output, {
plugins: [
imageminMozjpeg({
quality: 70,
}),
]
});
optimiseJPEGImages()
.catch(error => console.log(error));
3.运行 node imagemin.js, 从build/images 文件夹中获取优化后的版本
使用 pngquant 优化 PNG 图像 1.npm install imagemin-pngquant 2.以下内容添加到 imagemin.js 中
const imageminPngquant = require('imagemin-pngquant');
const optimisePNGImages = () =>
imagemin([PNGImages], output, {
plugins: [
imageminPngquant({ quality: '65-80' })
],
});
optimiseJPEGImages()
.then(() => optimisePNGImages())
.catch(error => console.log(error));
像 JPEG 一样对细节丰富的图片信手拈来,像 PNG 一样支持透明,像 GIF 一样可以显示动态图片——它集多种图片文件格式的优点于一身
官方介绍
与 PNG 相比,WebP 无损图像的尺寸缩小了 26%。在等效的 SSIM 质量指数下,WebP 有损图像比同类 JPEG 图像小25-34%。 无损 WebP 支持透明度(也称为 alpha 通道),仅需 22% 的额外字节。对于有损 RGB 压缩可接受的情况,有损 WebP 也支持透明度,与 PNG 相比,通常提供 3 倍的文件大小。
优化webp图像 1.npm install imagemin-webp 2.以下内容添加到 imagemin.js 中
const imageminWebp = require('imagemin-webp');
const convertPNGToWebp = () =>
imagemin([PNGImages], output, {
use: [
imageminWebp({
quality: 85,
}),
]
});
const convertJPGToWebp = () =>
imagemin([JPGImages], output, {
use: [
imageminWebp({
quality: 75,
}),
]
});
optimiseJPEGImages()
.then(() => optimisePNGImages())
.then(() => convertPNGToWebp())
.then(() => convertJPGToWebp())
.catch(error => console.log(error));
quality 设置为 85 会生成质量与 PNG 相当但小得多的 WebP 图像。