exiftool-vendored
是一款可以帮助你快捷修改图片信息的第三方库。如果你想要批量修改图片信息的话,那么它是一个不错的选择。
1.导入第三方库
在控制台中执行下面代码即可。
npm install exiftool-vendored --save
2.获取信息
这里给出例子。
const { exiftool } = require('exiftool-vendored');
( async ()=>{
const url=" The url of your image. ";
const tags=await exiftool.read(url);
exiftool.end();
console.log(tags);
return;
} )();
注意代码最后一定要有 exiftool.end()
这一语句,否则程序不会自己结束运行。
3.修改信息
这里以修改 FileName
属性为例。
const { exiftool } = require('exiftool-vendored');
( async ()=>{
const url=" The url of your image. ";
const config={"FileName":"NewFile.jpg"};
await exiftool.write(url,config);
exiftool.end();
return;
} )();
如果需要修改其他的属性,可以根据查询数据得到的结果进行定向修改。
如果是要修改时间类型的数据的话,需要导入一个新类叫 ExifDateTime
,示例如下。
const { ExifDateTime } = require('exiftool-vendored');
const now=new Date();
const config=new ExifDateTime(
now.getFullYear(), // year
now.getMonth()+1, // month
now.getDate(), // day
now.getHours(), // hour
now.getMinutes(), // minute
now.getSeconds(), // second
undefined, // millisecond
undefined, // tzoffsetMinutes
now.toLocaleString().replaceAll('/',':'), // rawValue 格式:YYYY:MM:DD HH:MM:SS
undefined, // zoneName
false, // inferredZone
);
在执行完 exiftool.write()
之后,如果使用的是默认选项,则会出现一个新文件,代表的是你的 修改前的文件。若不需要这个文件,就可以在执行时加入选项 -overwrite_original
。
示例:
await exiftool.write(url,{"DateTimeOriginal":config},['-overwrite_original']);