js compressorjs 根据fromDir获取其中所有的jpg或者 png图片然后使用compressorjs压缩完成之后写入destDir
你可以使用以下代码来实现这个功能:
const fs = require('fs');
const path = require('path');
const { createWorker } = require('tesseract.js');
const Compressor = require('compressorjs');
const fromDir = '/path/to/from/directory';
const destDir = '/path/to/destination/directory';
const compressImages = async (fromDir, destDir) => {
try {
// 读取fromDir中的所有文件
const files = fs.readdirSync(fromDir);
// 遍历文件列表
for (const file of files) {
const filePath = path.join(fromDir, file);
const fileExtension = path.extname(file).toLowerCase();
// 检查文件是否为jpg或png格式
if (fileExtension === '.jpg' || fileExtension === '.png') {
// 使用compressorjs压缩图片
const compressedImage = await compressImage(filePath);
// 写入压缩后的图片到destDir
const destFilePath = path.join(destDir, file);
fs.writeFileSync(destFilePath, compressedImage);
}
}
console.log('Compression completed successfully!');
} catch (error) {
console.error('Compression failed:', error);
}
};
const compressImage = (filePath) => {
return new Promise((resolve, reject) => {
// 使用compressorjs压缩图片
new Compressor(filePath, {
quality: 0.6, // 压缩质量,可调整为你需要的值
success(result) {
// 将压缩后的图片转换为Buffer
const compressedImageBuffer = Buffer.from(result, 'base64');
resolve(compressedImageBuffer);
},
error(error) {
reject(error);
},
});
});
};
// 调用函数进行图片压缩
compressImages(fromDir, destDir);
请确保在运行代码之前,你已经安装了 tesseract.js 和 compressorjs 模块,可以通过运行以下命令进行安装:
npm install tesseract.js compressorjs
将 /path/to/from/directory 替换为源目录的实际路径,将 /path/to/destination/directory 替换为目标目录的实际路径
原文地址: https://www.cveoy.top/t/topic/i0zi 著作权归作者所有。请勿转载和采集!