从源目录读取所有文件:利用Node.js中的文件系统模块枚举指定源目录中的所有文件.
调整每个图像的大小:使用Tinify API根据预定义的尺寸调整每个图像的大小,类似于前面描述的方法.
保存已调整大小的图像:将已调整大小的图像存储在指定的目标目录中,保留其原始文件名以便于识别和保持一致性.
这是演示代码.
另存为converts.js
文件名
const fs = require("fs");
const path = require("path");
const tinify = require("tinify");
tinify.key = "[ YOUR API KEY ]"; // Replace with your actual API key
const sourceDir = "image/png";
const destDir = "image/webp";
async function resizeAndConvertImages() {
try {
const files = fs.readdirSync(sourceDir);
for (const file of files) {
const ext = path.extname(file).toLowerCase();
if (ext === '.png' || ext === '.jpg' || ext === '.jpeg') {
const sourcePath = path.join(sourceDir, file);
const destPath = path.join(destDir, file).replace(ext, '.webp'); // Change extension to .webp
const source = tinify.fromFile(sourcePath);
const resized = source.resize({
method: "cover",
width: 720,
height: 225
});
await resized.toFile(destPath);
console.log(`${file} has been resized and saved as ${destPath}`);
}
}
} catch (error) {
console.error("Error during processing:", error);
}
}
resizeAndConvertImages();
Get API Key
从您的tinify个控制面板
https://tinify.com/dashboard/api
Input directory
It mixed JPG and PNG images
Install Dependency
npm install tinify
Run it
node converts.js
Result
由于Tinify的API使用的调整大小方法,某些图像可能会被裁剪或裁剪.