npm 包 @amokrushin/exiftool-vendored.pl 使用教程

如今,随着数码摄影的普及,我们对照片的需求越来越多。而像相机照片这些东西,通常在照片元数据(metadata)中包含了很多需要的信息,例如拍摄时间、地点、相机型号等。常规的图片查看器、编辑器通常都支持查看和修改这些信息,但很多时候我们需要在程序中读取或者修改它们。本篇文章将介绍一款使用 Node.js 操作图片元数据的 npm 包 @amokrushin/exiftool-vendored.pl 的使用方法。

exiftool-vendored.pl 是什么

exiftool-vendored.pl 是 Perl 语言编写的一款用于操作图片元数据的工具,不仅支持常见的图片格式如 JPEG、PNG、TIFF 等,还通常支持 RAW(未经处理的)文件格式,例如 CR2(Canon RAW)和 NEF(Nikon RAW)等。exiftool 同时也是一个命令行工具,用于在控制台中查询和修改图片元数据。但由于它是 Perl 编写,需要在当地安装 Perl 环境,这使得 exiftool 在 node.js 等非 Perl 环境中被调用很困难。

因此,amokrushin 开发了 exiftool-vendored.pl 包,并将它打包为 npm 包,这样我们可以用 JavaScript 或 TypeScript 代码在 node.js 环境中轻松调用 exiftool。

安装 @amokrushin/exiftool-vendored.pl

在使用 exiftool-vendored.pl 包之前,我们需要在项目中安装它。可以使用 npm 命令安装它,命令如下:

--- ------- ------ --------------------------------

安装完成后,我们就可以在 node.js 中使用 @amokrushin/exiftool-vendored.pl 了。

如何使用 exiftool-vendored.pl

对于初次使用 exiftool-vendored.pl 的程序员,可能需要更多的指导。下面,我们将按照官方文档的内容,一步一步地介绍使用方法。

导入 exiftool-vendored.pl

首先,我们需要在文件中导入 @amokrushin/exiftool-vendored.pl:

----- -------- - -----------------------------------------

或者,如果您使用 ES6 中的 Import,您可以这样写:

------ -------- ---- --------------------------------

执行 exiftool 命令

因为 exiftool-vendored.pl 本质上是一个命令行工具,因此我们需要像在终端中一样执行命令。此时,我们可以调用 exiftool.run() 方法来执行 exiftool 命令。以下是使用 exiftool 命令读取单个图片的元数据的示例(假设图片路径为 /path/to/image.jpg):

-------------------------------------------------- -- -
  ----------------------
---

此代码段使用 exiftool 命令读取 /path/to/image.jpg 图片的元数据,并将元数据打印到控制台中。

添加自定义参数

如同在 terminal 中使用 exiftool 命令时一样,在使用 exiftool-vendored.pl 时,我们可以添加自定义参数。

例如,如果我们想要仅获取图片的时间信息,可以使用以下代码段:

---------------------------------- -------------------------------------- -- -
  ----------------------
---

该示例中,我们添加了参数 -DateTimeOriginal,以仅获取图片的时间信息。

传递多个文件

类似 exiftool /path/to/image1.jpg /path/to/image2.jpg 的终端命令,在使用 exiftool-vendored.pl 时,我们也可以将多个文件路径传递给 run() 方法。

例如,如果我们要获取多个图片的时间信息和 GPS 坐标信息,可以使用以下代码段:

--------
  ---------------------------- ----------------------- -
    --------------------
    ---------------
    ----------------
  --
  ---------------- -- -
    ----------------------
  ---

在此示例中,我们输入了两个文件路径,并传递了参数 -DateTimeOriginal-GPSLatitude-GPSLongitude,以获取这两个文件的元数据信息。

获取 exiftool 版本号

最后,我们也可以获取 exiftool 版本号。为此,可以调用 version() 方法,如下所示:

----- ------- - -------------------
---------------------

总结

本篇文章介绍了如何在 node.js 环境下使用 @amokrushin/exiftool-vendored.pl 包读取和修改图片元数据。通过本文所述的方法,您可以方便地获取每张图片的信息,这对于图片管理和定位问题非常有用。无论您是想要批量编辑照片元数据,还是想要在项目中使用图片元数据,exiftool-vendored.pl 它都是你的好帮手。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055a1f81e8991b448d7c18


猜你喜欢

  • npm 包 cond-table 使用教程

    如果你正在开发一个前端应用程序或者网站,并且需要展示大量的数据,那么 cond-table 可能是一个不错的选择。cond-table 是一款基于 React 的 npm 包,它可以帮助你创建可排序、...

    2 年前
  • npm 包 ezqs 使用教程

    前言 在众多的前端开发工具中,npm(Node.js 的包管理器)一直占据了重要的地位,提供了丰富的可复用的 JavaScript 模块,极大地方便了前端工程师的开发流程。

    2 年前
  • npm 包 haraka-plugin-template 使用教程

    介绍 Haraka 是一个用 JavaScript 编写的 SMTP 服务器框架。它允许我们在 Node.js 环境中构建可扩展的邮件处理系统。Haraka 的一个重要组成部分是插件系统,它允许我们添...

    2 年前
  • npm 包 json2es6m 使用教程

    随着前端开发的日益发展,我们常常需要使用 JSON 格式的数据,但是 JSON 格式的数据在使用时必须要进行转换才能在代码中使用。而在使用 ES6 的模块化语法时,我们经常需要使用 JSON 格式的数...

    2 年前
  • npm 包 main-routine-with-files 使用教程

    随着前端应用愈发复杂,前端开发人员需要处理大量的文件和代码,使得开发工作变得越来越困难和繁琐。main-routine-with-files 是一个 npm 包,旨在为前端开发人员提供一个简单且有效的...

    2 年前
  • npm 包 pkap-mongoose-intl 使用教程

    前言 随着互联网的发展和全球化,多语言已经成为一个必备的功能,而在 Node.js 项目中使用 MongoDB 的时候,pkap-mongoose-intl 就成了一个可靠的选择。

    2 年前
  • NPM包:common-to-amd使用教程

    前端开发中,经常会遇到使用不同模块化规范的情况。有时候需要将一个基于CommonJS规范的npm包转换成基于AMD规范的形式,以便在使用require.js模块加载器等工具中进行使用。

    2 年前
  • NPM 包 nodebb-theme-audioflea 使用教程

    Nodebb 是一个基于 Node.js 构建的现代化的论坛系统,拥有丰富的插件和主题。而 nodebb-theme-audioflea 是一款非常不错的 Nodebb 主题,它的特点是全面支持音频模...

    2 年前
  • npm 包 gulp-common-to-amd 使用教程

    前言 在开发前端项目的过程中,我们经常需要使用流程自动化工具来提高开发效率和代码质量。Gulp 是一个流程自动化工具,能够对 JavaScript、CSS、图片等资源进行处理、优化和打包等操作。

    2 年前
  • npm 包 sugar-router 使用教程

    前言 随着前端技术的不断发展,前端工程化越来越普及,npm 包作为前端工程化中的重要组成部分,为开发者提供了许多便利。本文就为大家介绍一个优秀的前端路由工具 sugar-router,使前端页面的管理...

    2 年前
  • npm 包 next-routes-t 使用教程

    next-routes-t 是一个方便快捷的路由管理插件,可以帮助开发者优化前端路由配置,同时增强可读性和可维护性。本文将为大家介绍如何使用 next-routes-t 插件。

    2 年前
  • npm 包 agile-proj2-tv 使用教程

    前言 在进行 Web 开发的过程中,我们经常会使用到各种工具和框架来提高我们的工作效率和代码质量。而 npm 作为目前最流行的 JavaScript 包管理器,为我们提供了许多方便易用的工具包。

    2 年前
  • npm 包 react-email-signup 使用教程

    简介 React-email-signup 是一个 React 组件,提供了一个简单易用的 UI 界面,用于收集用户的电子邮件地址。该组件可以直接使用,不需要复杂的设置和配置。

    2 年前
  • npm 包 pusher-redux-observable 使用教程

    在前端开发中,我们经常需要实现实时性强的交互功能,例如聊天室、提醒、通知等。而实现这些功能需要使用 WebSocket 技术,而这个技术本身还需要使用一些库来实现。

    2 年前
  • npm 包 @kirill.konshin/nwb 使用教程

    前置条件 在使用 @kirill.konshin/nwb 进行开发前,请确保已安装最新版 Node.js。 简介 @kirill.konshin/nwb 是一个基于 webpack 和 Babel 的...

    2 年前
  • npm 包 ab1 使用教程

    前言 在前端开发过程中,我们经常需要传输二进制数据,比如图片、音频等。而传输二进制数据的方式有很多种,其中 ArrayBuffer 是比较常用的一种。为了方便使用 ArrayBuffer,我们可以使用...

    2 年前
  • npm 包 databox-app-template-node 使用教程

    简介 npm 是 Node.js 的包管理器,全名为 Node Package Manager,是 JavaScript 的包管理工具。在前端开发中,我们可以用 npm 快速获取和安装各种依赖包,使得...

    2 年前
  • npm 包 get-ready-browser 使用教程

    在前端开发过程中,我们常常需要使用各种库和插件来实现不同的功能。而 npm 是一个非常流行的包管理工具,用于下载和管理各种前端库和插件。在这篇文章中,我们将介绍一个 npm 包——get-ready-...

    2 年前
  • npm 包 gh-to-pages 使用教程

    随着前端工具的不断更新和迭代,部署项目已经变得越来越简单便捷。其中,使用 GitHub Pages 部署前端项目是最受欢迎的选择之一,因为它不仅提供了免费的托管服务,还可以方便地与 Git 仓库集成。

    2 年前
  • npm 包 node-red-contrib-mobius-flow-bluemix 使用教程

    前言 随着物联网技术的发展,传感器设备越来越普及,物联网应用越来越广泛。在这个过程中,数据采集、组织与分析显得格外重要。Mobius Flow Bluemix 节点是一个基于 Node-RED 平台的...

    2 年前

相关推荐

    暂无文章