首页 > 系统教程 > 操作系统 > 如何使用Linux中的Exiftool管理图像元数据

如何使用Linux中的Exiftool管理图像元数据

William Shakespeare
发布: 2025-03-15 09:45:10
原创
967 人浏览过

该详细的指南说明了什么是Exiftool ,如何在Linux上安装Exiftool以及如何使用它使用实际示例来管理图像元数据信息。

最后,我们将简要了解两种类型的元数据标准( EXIFXMP)之间的区别。甚至还有一张Exiftool备忘单,可以帮助您记住命令!

目录

什么是Exiftool?

菲尔·哈维(Phil Harvey)开发的Exiftool是一个强大的命令行应用程序和Perl库,旨在以各种文件格式管理元数据

使用Exiftool,我们可以管理嵌入在各种数字文件中的隐藏详细信息(IE元数据)。这些细节可以包括:

  • 拍摄照片的日期和时间,
  • 使用的相机设置,
  • 位置信息(GPS坐标),
  • 作者信息,
  • 对文件进行的编辑,
  • 还有很多。

Exiftool在不同平台(Linux,MacOS和Windows)上工作,有两种口味:

  • PERL库:这使程序员可以在其应用程序中集成Exiftool功能。
  • 命令行应用程序:这是一个基于文本的工具,供用户直接与Exiftool交互。

如果您每天都在处理图像,视频,音频文件或PDF,我可以保证Exiftool可能是您的最佳伴侣!

注意EXIF代表更改法师格式。

Exiftool的主要特征

Exiftool以其广泛的功能而闻名,可满足各种元数据管理需求:

  • 支持多种元数据格式: Exiftool可以处理许多元数据格式,例如EXIF,GPS,IPTC,XMP,JFIF,JFIF,GEOTIFF,ICC配置文件,Photoshop IRB,FlashPix,AFCP,AFCP,ID3等。
  • 宽文件格式兼容性:它可以与许多文件类型一起使用,包括JPEG,PNG,TIFF,RAW,MP4,MOV和AVI。
  • 独立于平台的: Exiftool可用于Windows,MacOS和基于UNIX的系统。
  • 可自定义的输出:它提供多个输出格式化选项,包括选项卡 - 删除,HTML,XML和JSON。
  • 多语言支持: Exiftool提供各种语言的输出,包括英语,法语,德语,日语等。

在Linux中安装Exiftool

Exiftool可以通过几种方式安装在Linux上。

在Debian/Ubuntu安装Exiftool

Exiftool在流行Linux操作系统的默认存储库中可用。

对于Debian,Ubuntu和其他基于Debian的发行版,您可以使用APT软件包管理器安装Exiftool:

 sudo apt更新
sudo apt安装exiftool
登录后复制

这将安装Exiftool及其依赖关系。

在Fedora中安装Exiftool

对于Fedora,您可以使用DNF软件包管理器:

 sudo dnf安装perl-image-exiftool
登录后复制

安装exiftool f rom源

如果您希望从源安装Exiftool,请按照以下步骤:

1。下载最新版本

在撰写本指南时,Exiftool的最新版本为12.89 。让我们使用命令下载它:

 WGET https://exiftool.org/image-exiftool-12.89.tar.gz
登录后复制

2。提取下载的文件

 tar xvf image-exiftool-12.89.tar.gz
登录后复制

3。导航到提取的目录

 CD Image-Exiftool-122.89
登录后复制

4。安装Exiftool

确保已安装了开发工具。然后运行以下命令一个:

 perl makefile.pl
制作
进行测试
Sudo进行安装
登录后复制

使用git安装Exiftool

您也可以克隆Exiftool存储库并安装它:

1。克隆存储库

 git克隆https://github.com/exiftool/exiftool.git
登录后复制

2。导航到克隆目录

 CD Exiftool
登录后复制

3。运行Exiftool

 ./ exiftool/path/to/image
登录后复制

这些方法应帮助您在Linux系统上启动并运行。

如何使用Exiftool来管理Linux中的图像元数据

以下是一些基本命令,以说明如何使用Exiftool:

阅读元数据

从图像文件读取元数据:

 Exiftool Image.jpg
登录后复制
登录后复制

此命令显示与image.jpg关联的所有元数据。

例子

我将显示名为ostechnix.png的图像文件的元数据。

 Exiftool ostechnix.png
登录后复制

样本输出

 Exiftool版本编号:12.16
文件名:ostechnix.png
目录:。
文件大小:6.4 KIB
文件修改日期/时间:2020:08:22 15:21:00 05:30
文件访问日期/时间:2024:07:22 17:52:28 05:30
文件Inode更改日期/时间:2024:07:11 13:44:03 05:30
文件权限:rwxrwxrwx
文件类型:PNG
文件类型扩展名:PNG
MIME类型:图像/PNG
图像宽度:267
图像高度:267
位深度:8
颜色类型:带alpha的RGB
压缩:放气/膨胀
过滤器:自适应
交叉:不隔离
单元x的像素:11811
单位y的像素:11811
像素单元:仪表
图像尺寸:267x267
百万像素:0.071
登录后复制

如何使用Linux中的Exiftool管理图像元数据

写元数据

在图像文件中添加或修改元数据:

 Exiftool -Artist =“您的名字” image.jpg
登录后复制

此命令将Artist标签设置为Image.jpg中的“您的名字”。

例子

将艺术家标签设置/更改为ostechnix.png中的“ Senthil Kumar”:

如何使用Linux中的Exiftool管理图像元数据

让我们通过阅读文件的元数据来验证作者的名称是否确实更新了:

如何使用Linux中的Exiftool管理图像元数据

正如您在上面的输出中看到的那样,添加了艺术家名称。

注意:编写信息时,通过将“ _original”添加到文件名中来保存原始文件。您必须保留原件的副本,或在擦除原件之前彻底验证新文件。

复制元数据

将元数据从一个文件复制到另一个文件:

 exiftool -tagsfromfile source.jpg target.jpg
登录后复制
登录后复制

此命令将所有元数据标签从source.jpg复制到target.jpg。

删除特定的元数据标签

删除特定标签:

 exiftool -tagname =文件名
登录后复制
登录后复制

例如,从image.jpg中删除艺术家标签:

 Exiftool -Artist = Image.jpg
登录后复制

删除所有元数据

要从文件中删除所有元数据:

 Exiftool -all = image.jpg
登录后复制
登录后复制

此命令从image.jpg中删除所有元数据。

批处理处理

批处理处理使您可以同时将元数据更改应用于多个文件。

一次编辑元数据,以一次为多个文件:

 Exiftool -Artist =“ John Doe” *.jpg
登录后复制
登录后复制

此命令为目录中的所有JPEG文件设置Artist标签。

递归批处理处理

要处理子目录中的文件,请使用-r选项:

 Exiftool -r -Artist =“ John Doe”/path/to/directory
登录后复制
登录后复制

此命令为/path/to/to/Directory及其子目录中的所有JPEG文件设置Artist标签。

查看可用标签

查看所有可以编辑的标签的列表:

 Exiftool -list
登录后复制
登录后复制

此命令列出了Exiftool可以读写的所有标签。

提取特定的元数据标签

exiftool -t -tricedate -ofture -shutterspeed -iso image.jpg
登录后复制

此命令从image.jpg提取创建的,孔径,shutterspeed和ISO标签。

例子

如何使用Linux中的Exiftool管理图像元数据

基于元数据重命名文件

您可以使用Exiftool使用简单命令来重命名文件的“ tate Date”元数据:

 exiftool -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  fileName <datetimeriginal image.jpg><p>此命令使用格式yyyy-mm-dd_hh-mm-ss基于其dateTimeOriginal元数据重命名image.jpg。</p>
<h3>递归重命名</h3>
<p>如果要根据元数据递归重命名特定目录中的所有文件,则可以使用-r标志如下:</p>
<pre class="brush:php;toolbar:false"> exiftool -r -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  fileName <datetimeriginal><p>此命令将递归重命名指定目录及其子目录中的所有文件。</p>
<h3>处理重复的文件名</h3>
<p>格式的%% -C一部分确保如果有重复的文件名,则将附加复制号以避免覆盖文件。例如,如果两个文件具有相同的日期和时间,则将命名为2024-07-13_12-23-21-1.jpg和2024-07-13_12-23-23-21-2.jpg。</p>
<h3>重命名特定文件类型</h3>
<p>要重命名特定文件类型,例如JPEG文件,您可以使用-ext选项:</p>
<pre class="brush:php;toolbar:false"> Exiftool -r -R-ext Jpg -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  filename <datetimeriginal><p>此命令将仅在指定目录及其子目录中重命名JPEG文件。</p>
<h3>提取缩略图图像</h3>
<pre class="brush:php;toolbar:false">Exiftool -b -B -Thumbnailimage image.jpg> thumbnail.jpg
登录后复制

此命令从image.jpg提取缩略图图像,并将其保存为thumbnail.jpg。

地理图像

exiftool -geotag track.log image.jpg
登录后复制

此命令geotags image.jpg使用track.log的GPS数据。

批处理

如果您有带有GPS数据的CSV文件,则可以批处理图像图:

 exiftool -geotag gps_data.csv/path/to/fimage
登录后复制
登录后复制

此命令使用来自gps_data.csv的GPS数据中的/路径/到/图像中的所有图像。

验证元数据

Exiftool -Validate -Warning -Error Image.jpg
登录后复制

此命令验证了image.jpg的元数据并显示任何警告或错误。

如何使用Linux中的Exiftool管理图像元数据

将所有元数据提取到文本文件

exiftool -a -g1 -s image.jpg> metadata.txt
登录后复制

此命令从image.jpg提取所有元数据,并将其保存到getadata.txt。

从目录中的所有文件中提取元数据

Exiftool -r -W .txt -common图片
登录后复制

此命令递归从图片目录中的所有文件中提取常见的元数据,并将输出写入具有相同名称的文本文件,但具有.txt扩展名。

使用Exiftool提取GPS坐标

这是您可以使用Exiftool从图像中提取GPS坐标的方法。

基本提取

exiftool -gpslatitude -gpslongitude image.jpg
登录后复制

此命令将显示image.jpg的GPS纬度和经度。

如何使用Linux中的Exiftool管理图像元数据

提取所有GPS数据

Exiftool -GPS* image.jpg
登录后复制

此命令从Image.jpg提取所有与GPS相关的元数据。

样本输出

 GPS Latitude Ref : NorthGPS Longitude Ref : EastGPS Altitude Ref : Above Sea LevelGPS Time Stamp : 13:37:16GPS Date Stamp : 2023:05:18GPS Altitude : 93.9 m Above Sea LevelGPS Date/Time : 2023:05:18 13:37:16ZGPS Latitude : 52 deg 40' 11.85" NGPS Longitude : 13 deg 16' 51.10" EGPS Position : 52 deg 40'11.85“ n,13 deg 16'51.10” e
登录后复制

输出到文本文件

将GPS坐标保存到文本文件:

 exiftool -gpslatitude -gpslongitude -t image.jpg> gps_coordinates.txt
登录后复制
登录后复制

此命令将image.jpg的gps纬度和经度写入gps_coordinates.txt。

批次提取

从目录中的所有图像中提取GPS坐标并将其保存到文本文件中:

 exiftool -fileName -gpslatitude -gpslongitude -t/path/to/Directory> gps_coordinates.txt
登录后复制
登录后复制

此命令将使用指定目录中所有图像的文件名和GPS坐标创建一个选项卡 - 删除的文件gps_coordinates.txt。

小数度输出

如果您希望以十进制程度为单位的坐标,请添加-n选项:

 exiftool -gpslatitude -gpslongitude -n image.jpg
登录后复制
登录后复制

样本输出

 GPS纬度:52.6699589722222GPS经度:13.280862
登录后复制

该命令以小数度输出GPS坐标。

Exiftool命令作弊表

1。阅读元数据

基本阅读:

 Exiftool Image.jpg
登录后复制
登录后复制

提取特定的元数据标签:

 exiftool -t -tricedate -ofture -shutterspeed -iso image.jpg
登录后复制

将所有元数据提取到文本文件:

 exiftool -a -g1 -s image.jpg> metadata.txt
登录后复制

从目录中的所有文件中提取元数据:

 Exiftool -r -W .txt -common图片
登录后复制

2。写元数据

添加或修改元数据标签:

 exiftool -tagname =“新值”文件名
登录后复制

批处理处理(对目录中的所有文件修改元数据):

 Exiftool -Artist =“ John Doe” *.jpg
登录后复制
登录后复制

递归批处理处理:

 Exiftool -r -Artist =“ John Doe”/path/to/directory
登录后复制
登录后复制

3。复制元数据

将元数据从一个文件复制到另一个文件:

 exiftool -tagsfromfile source.jpg target.jpg
登录后复制
登录后复制

将元数据从一个文件复制到多个文件:

 exiftool -tagsfromfile source.jpg -ext jpg/path/to/directory
登录后复制

4。去除元数据

删除所有元数据:

 Exiftool -all = image.jpg
登录后复制
登录后复制

删除特定的元数据标签:

 exiftool -tagname =文件名
登录后复制
登录后复制

5。重命名文件

根据所示日期重命名文件:

 Exiftool -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  fileName <datetimeriginal><p><strong>递归重命名:</strong></p>
<pre class="brush:php;toolbar:false"> exiftool -r -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  filename <datetimeriginal><p><strong>重命名特定文件类型:</strong></p>
<pre class="brush:php;toolbar:false"> Exiftool -r -R-ext Jpg -d“%y-%m-%d_%h-%m-%s %%  -  c。%% e”  -  filename <datetimeriginal><h3> 6。地理标记</h3>
<p><strong>基本地理标记:</strong></p>
<pre class="brush:php;toolbar:false"> exiftool -geotag track.log image.jpg
登录后复制

批处理:

 exiftool -geotag gps_data.csv/path/to/fimage
登录后复制
登录后复制

7。提取GPS坐标

基本提取:

 exiftool -gpslatitude -gpslongitude image.jpg
登录后复制

提取所有GPS数据:

 Exiftool -GPS* image.jpg
登录后复制

输出到文本文件:

 exiftool -gpslatitude -gpslongitude -t image.jpg> gps_coordinates.txt
登录后复制
登录后复制

批次提取:

 exiftool -fileName -gpslatitude -gpslongitude -t/path/to/Directory> gps_coordinates.txt
登录后复制
登录后复制

小数点的输出:

 exiftool -gpslatitude -gpslongitude -n image.jpg
登录后复制
登录后复制

8。列表可用标签

查看可用标签:

 Exiftool -list
登录后复制
登录后复制

9。验证元数据

验证元数据:

 Exiftool -Validate -Warning -Error Image.jpg
登录后复制

10。提取缩略图图像

提取缩略图:

 Exiftool -b -B -Thumbnailimage image.jpg> thumbnail.jpg
登录后复制

EXIF和XMP元数据之间的差异

EXIFXMP都是数字成像中使用的元数据标准,但它们具有不同的目的并且具有不同的特征。

Exif元数据

  • 来源:由日本电子工业发展协会(JEIDA)开发,用于数码相机。
  • 内容:主要包含有关图像的技术信息,例如相机设置(光圈,快门速度,ISO),拍摄照片的日期和时间,有时甚至是GPS坐标。
  • 格式:二进制格式直接嵌入图像文件(JPEG,TIFF等)。
  • 用法:由数码相机和图像查看/编辑软件得到广泛支持。它主要用于存储与摄像机相关的信息。

XMP元数据

  • 来源:由Adobe Systems开发为元数据的开放标准。
  • 内容:可以存储广泛的信息,包括技术,描述性和行政元数据。这包括编辑历史记录,关键字,作者信息等。
  • 格式:基于XML的格式,使其更加灵活和扩展。 XMP元数据可以嵌入到文件中,也可以存储在单独的边防文件中。
  • 用法:在专业照片编辑软件(如Adobe Photoshop和Lightroom)中广泛使用,用于管理和保存不同的文件格式和工作流程的元数据。

关键差异

  • 目的: EXIF主要用于特定于摄像机的信息,而XMP更广泛,可以存储更广泛的元数据。
  • 格式: EXIF是二进制的,并嵌入在图像文件中,而XMP基于XML,可以分别嵌入或存储。
  • 灵活性: XMP更加灵活,可以轻松扩展到包括自定义元数据字段,而EXIF则更加刚性和标准化。

EXIF和XMP元数据对于数字成像的不同方面都很重要。 EXIF对于理解如何捕获图像的技术细节很有用,而XMP在整个编辑和发布过程中提供了一种更全面,更灵活的方法来管理和保存元数据。

结论

现在,您了解所有有关Exiftool的信息! Exiftool是一个有力的工具,对于想要在数字文件中理解和管理元数据的任何人。这对于摄影师,摄像师以及任何想保持其数字文件井井有条的人可能特别有用。

资源

  • Exiftool网站

相关阅读

  • 如何在Linux上查看图像元数据

以上是如何使用Linux中的Exiftool管理图像元数据的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板