在 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模块读取目录,循环处理图片)。




 苏公网安备32021302001419号
苏公网安备32021302001419号