// 用sharp转换图片格式
const Sharp = require('sharp');
// 引入fs库用于文件操作
const fs = require('fs');
// 引入path库用于处理文件路径
const path = require('path');
// 引入exiftool库用于处理图片元数据
const exiftool = require('exiftool-vendored').exiftool
// 获取目标文件夹images-input内所有图片名称
const inputURL = './images-input'
// 定义输出文件夹路径
const outputURL = './images-output'
// 获取目标文件夹images-input内所有图片名称
const imageNames = fs.readdirSync(inputURL);
// 删除输出文件夹及其内容
fs.rmSync(outputURL, { recursive: true, force: true });
// 创建输出文件夹
fs.mkdirSync(outputURL);
// 定义图片格式转换函数
async function translate(inputURL, fileName) {
// 获取文件名(不包含扩展名)
const fileNamePure = fileName.split(".")[0]
// 使用exiftool库修改图片的DPI为300
await exiftool.write(`${inputURL}/${fileName}`, {
XResolution: 300,
YResolution: 300,
ResolutionUnit: 'inches'
});
// 使用sharp库将图片转换为jpg格式并保存到输出文件夹中
await Sharp(`${inputURL}/${fileName}`).toFormat('jpg').toFile(`${outputURL}/${fileNamePure}.jpg`);
console.log('本次结束', '--------------33333');
}
// 对每个图片文件调用转换函数
for (const fileName of imageNames) {
const imageFormats = /\.(jpg|jpeg|png|gif|bmp)$/i;
if (imageFormats.test(fileName)) {
translate(inputURL, fileName);
}
}
标签:fs,const,nodejs,300,图片格式,jpg,fileName,exiftool,inputURL
From: https://www.cnblogs.com/mengqc1995/p/18441876