一尘子、道法自然、博客园、前端

修改图片的DPI为300,图片格式转换成jpg,nodejs脚本

// 用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);
  }
}
posted @ 2024-09-30 15:09  一尘子!  阅读(36)  评论(0编辑  收藏  举报
Live2D
返回顶端