前言
当我们在处理图片时,通常需要获取图片的元数据,如拍摄时间、拍摄地点等等。而这些元数据可以使用 exiftool 工具获取。exiftool 目前是一款非常流行的开源工具,它可以处理各种图片格式,并提供了封装好的命令行、API 等多种接口。但是,在使用 exiftool 时,通常需要自己编写一些脚本调用 exiftool 命令来完成操作。这对于一些没有编程经验的用户来说可能略有些困难。
本文将介绍一款 npm 包——exiftool-json-db,它将 exiftool 库封装到了其内部,并提供了简单易用的 API。使用 exiftool-json-db 可以更加方便易用地获取图片的元数据,并将元数据存储到一个 JSON 数据库中。
安装 exiftool-json-db
首先,我们需要安装 exiftool-json-db 包,你可以在命令行中运行以下命令完成安装:
npm install exiftool-json-db --save
使用 exiftool-json-db
然后,我们需要在代码中引入 exiftool-json-db:
const ExifToolJSONDB = require('exiftool-json-db');
创建一个 exiftool-json-db 的实例:
const etj = new ExifToolJSONDB(options);
其中,options
是一个可选项参数对象,它包含以下参数:
exiftoolBin
:exiftool 的可执行文件路径,默认值是exiftool
。dbName
:存储元数据的 JSON 数据库文件名,默认值是exiftool_db.json
。dir
:存储元数据的目录,默认值是当前目录。tags
:需要获取的元数据标签列表,默认值是:-- -------------------- ---- ------- - ----------- ----------- ----------- ----------- ------------ ------- -------- ------------- ------------- -------------- --------------- -------------- -
如果需要获取其他标签,可以在此参数中添加。例如,如果需要获取图片的作者信息,可以将
tags
参数改为:[ ...tags, 'Artist', ]
接着,就可以开始使用 exiftool-json-db 了。
获取单张图片的元数据
通过以下命令可以获取单张图片的元数据:
const metadata = await etj.getMetadata('path/to/image.jpg');
其中,path/to/image.jpg
是要获取元数据的图片文件路径。
如果需要获取多张图片的元数据,可以使用以下命令:
const metadataList = await etj.getMetadataList(['path/to/image1.jpg', 'path/to/image2.jpg']);
其中,['path/to/image1.jpg', 'path/to/image2.jpg']
是要获取元数据的图片文件路径列表。
获取全部图片的元数据
通过以下命令可以获取存储在数据库中的所有图片的元数据:
const metadataList = await etj.getAllMetadata();
清空数据库
通过以下命令可以清空数据库:
await etj.cleanDB();
示例代码
以下是一个完整的示例代码:
-- -------------------- ---- ------- ----- -------------- - ---------------------------- ----- -------- ------------- - ----- --- - --- ---------------- ------------ -------------------------- ------- ------------- ---- ------------ ----- - ----------- ----------- ----------- ----------- ------------ ------- -------- ------------- ------------- -------------- --------------- -------------- --------- -- --- -- ---------- ----- --------- - ----- -------------------------------------- ------------------------- ----------- -- ---------- ----- ------------ - ----- ------------------------------------------ ----------------------- ---------------------------- -------------- -- ---------- ----- ----------- - ----- --------------------- --------------------------- ------------- -- ----- ----- -------------- - --------------
结语
exiftool-json-db 是一个非常好用的 npm 包,可以让我们更加方便地获取图片的元数据,并将元数据存储到一个 JSON 数据库中。希望本文的介绍对大家有所帮助,让大家在前端开发中更加愉快。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005583c81e8991b448d56d6