返回

用 tinyPNG + Node.js 批量压缩图片,快速高效

前端

作为一名前端开发人员,经常需要对图片进行压缩。通常,我会使用tinyPNG这个在线工具来完成这项任务。但是,当需要压缩大量图片时,一个一个地上传压缩会变得非常繁琐。因此,我开始寻找一种方法来批量压缩图片。

经过一番研究,我发现可以使用tinyPNG的API来实现批量压缩图片。tinyPNG的API非常简单易用,只需要几个简单的步骤就可以完成。

首先,需要注册一个tinyPNG的账号,然后获取API密钥。接下来,就可以使用Node.js来编写脚本,将需要压缩的图片上传到tinyPNG的服务器,然后下载压缩后的图片。

使用这种方法,我可以轻松地批量压缩大量图片,而且速度非常快。这大大提高了我的工作效率。

下面,我将详细介绍如何使用tinyPNG和Node.js来批量压缩图片。

先决条件

在开始之前,需要确保已经安装了Node.js和npm。此外,还需要注册一个tinyPNG账号,并获取API密钥。

安装tinyPNG库

首先,需要安装tinyPNG库。可以使用以下命令来安装:

npm install tinypng

编写脚本

接下来,需要编写一个脚本来批量压缩图片。脚本的内容如下:

const tinypng = require('tinypng');

// API密钥
const apiKey = 'YOUR_API_KEY';

// 需要压缩的图片路径
const inputDir = 'path/to/input_directory';

// 压缩后的图片保存路径
const outputDir = 'path/to/output_directory';

// 创建一个tinypng客户端
const client = tinypng.createClient(apiKey);

// 读取需要压缩的图片列表
const files = fs.readdirSync(inputDir);

// 批量压缩图片
files.forEach(file => {
  const filePath = path.join(inputDir, file);

  // 读取图片内容
  const imageData = fs.readFileSync(filePath);

  // 压缩图片
  client.shrink(imageData).then((result) => {
    // 将压缩后的图片保存到输出目录
    fs.writeFileSync(path.join(outputDir, file), result.buffer);
  });
});

运行脚本

将上述脚本保存为一个文件,例如compress.js,然后使用以下命令运行脚本:

node compress.js

压缩结果

脚本运行完成后,压缩后的图片将保存到outputDir目录中。

使用这种方法,可以轻松地批量压缩大量图片,而且速度非常快。这大大提高了工作效率。

希望这篇文章对您有所帮助。如果您有任何问题,请随时留言。