📜  nodejs 中的图像压缩 - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:44.269000             🧑  作者: Mango

Node.js 中的图像压缩

图片占用的磁盘空间较大,有时需要通过压缩来减少其大小。本文介绍如何在 Node.js 环境下进行图像压缩。

1. 使用 sharp

sharp 是一个高性能的 Node.js 图像处理库,可以实现图像的压缩、裁剪、旋转等功能。安装 sharp 库:

npm install sharp --save
// 引入 sharp 库
const sharp = require('sharp');

// 压缩图片
sharp('input.jpg')
  .resize(200, 200) // 设置宽度和高度
  .toFile('output.jpg', (err, info) => {
    if (err) {
      console.log(err);
    } else {
      console.log(info);
    }
  });

sharp 中的 resize 方法可用来设置压缩后的图像大小。也可以通过 quality 参数设置压缩质量。

sharp('input.jpg')
  .resize(200, 200)
  .jpeg({ quality: 50 })
  .toFile('output.jpg', (err, info) => {
    if (err) {
      console.log(err);
    } else {
      console.log(info);
    }
  });

2. 使用 imagemin

imagemin 是一个图像压缩工具,可用于减少图像大小并提高网站性能。安装 imagemin 库:

npm install imagemin --save

可以通过以下方式使用 imagemin 库:

// 引入 imagemin 库
const imagemin = require('imagemin');
const imageminMozjpeg = require('imagemin-mozjpeg');

// 压缩图片
(async () => {
  const files = await imagemin(['images/*.jpg'], {
    destination: 'build/images',
    plugins: [
      imageminMozjpeg({
        quality: 50 // 压缩质量
      })
    ]
  });

  console.log(files);
})();

其中,imageminMozjpegimagemin 的插件,用于压缩 JPEG 图像。可以根据需要选择不同的插件来压缩不同类型的图像。

总结

在 Node.js 环境下,可以使用 sharpimagemin 库来实现图像压缩功能。这些库具有高性能、易于使用等优点,适用于 Web 开发等多个领域。