在 Node.js 中,可以使用 sharp
库来实现图片压缩。sharp
是一个高性能的图像处理库,支持压缩、裁剪、调整大小等功能。
以下是一个示例代码,展示如何使用 sharp
压缩图片:
安装依赖
npm install sharp
示例代码
const sharp = require('sharp');
const fs = require('fs');
// 定义输入和输出路径
const inputPath = 'input.jpg'; // 原始图片路径
const outputPath = 'output.jpg'; // 压缩后图片路径
// 压缩图片函数
async function compressImage() {
try {
await sharp(inputPath)
.resize({ width: 800 }) // 调整图片宽度,保持比例
.jpeg({ quality: 70 }) // 压缩为JPEG格式,质量设置为70
.toFile(outputPath); // 输出文件
console.log('图片压缩完成!');
} catch (err) {
console.error('图片压缩失败:', err);
}
}
// 调用函数
compressImage();
代码说明
resize
方法
调整图片尺寸(如宽度设置为 800 像素),高度根据宽高比自动调整。
如果不需要调整尺寸,可以省略此方法。jpeg
方法
指定图片格式为 JPEG,并设置压缩质量(quality
参数)。- 其他支持格式
png({ quality })
:压缩 PNG 格式。webp({ quality })
:压缩为 WebP 格式。
输出文件
压缩后的图片会保存到 output.jpg
。
适用场景
- 图片质量和文件大小需要平衡时。
- 批量处理图片(可以结合
fs
模块读取目录,循环处理图片)。