从 10.47 版开始,Exiftool 现在可以执行此操作。
在我的测试中,我看到 json 文件名有两种不同的格式,有些在哪里,filename.ext.json
有些在哪里filename.json
(json 文件名中没有扩展名)。这里有两个命令来涵盖这两种情况。如果您像我一样有混合物,请同时运行。
json 文件名中带有扩展名的文件
exiftool -tagsfromfile '%d/%F.json' '-ImageTag<JsonTag' FileOrDir
json 文件名中没有扩展名的文件
exiftool -tagsfromfile '%d/%f.json' '-ImageTag<JsonTag' FileOrDir
替换FileOrDir
为您要处理的文件或目录。替换ImageTag
为要复制到的图像中的标记名称。替换JsonTag
为您希望从中复制的 json 文件中的标签名称。如果您使用的是 Windows 而不是 linux,请使用双引号而不是单引号。
以下是我在 json 文件中遇到的一些更有用的标签以及我在哪里复制它们的建议。其中两个标签名称Description 和Title 与相关的XMP 标签相同,因此不需要重定向到图像标签名称中,可以简单地保留在上述命令中的-Description
或中。描述:文件的描述。合适的位置是 IPTC:Caption-Abstract、XMP:Description 和 EXIF:ImageDescription。您可以使用、或复制这些内容。title : 上传文件的名称。这可以复制到或中。人们-Title
'-Caption-Abstract<Description'
-Description
'-ImageDescription<Description'
Title
ObjectDescription
PreservedFileName
: 不确定,但我猜如果该文件在 Picasa 等程序中标记了人员,这将是名称列表,很可能来自RegionPersonDisplayName
.
url:这是可以从中下载图像的 URL。警告:这是一个公开共享的 URL,即使图像被标记为私有,仍然可以使用此 URL 下载。
GeoInfoAltitude_、GeoInfoLatitude_和GeoInfoLongitude_:如果上传的文件被地理标记,这些将是图像的高度、纬度和经度。这些最好复制到GPSAltitude
, GPSLatitude
, GPSLatitudeRef
,GPSLongitude
和GPSLongitudeRef
. 由于 GPS 标签(未签名)的性质,位于西半球和/或南半球的图像必须还设置了 Ref 标签。
示例命令:
复制 gps 标签
exiftool -tagsfromfile '%d/%F.json' '-GPSAltitude<GeoDataAltitude' '-GPSLatitude<GeoDataLatitude' '-GPSLatitudeRef<GeoDataLatitude' '-GPSLongitude<GeoDataLongitude' '-GPSLongitudeRef<GeoDataLongitude' FileOrDir
复制关键字:
exiftool -tagsfromfile '%d/%F.json' '-Keywords<Tags' '-Subject<Tags' FileOrDir
复制说明:
exiftool -tagsfromfile '%d/%F.json' '-Caption-Abstract<Description' '-ImageDescription<Description' -Description FileOrDir
将 JSON 中的所有数据复制到文件中,修改原始文件(2020 年):
exiftool -r -d %s -tagsfromfile "%d/%F.json" "-GPSAltitude<GeoDataAltitude" "-GPSLatitude<GeoDataLatitude" "-GPSLatitudeRef<GeoDataLatitude" "-GPSLongitude<GeoDataLongitude" "-GPSLongitudeRef<GeoDataLongitude" "-Keywords<Tags" "-Subject<Tags" "-Caption-Abstract<Description" "-ImageDescription<Description" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -overwrite_original FileOrDir
编辑(2018 年 1 月):与往常一样,谷歌将改变一切。根据下面的评论,上述GeoInfo*标签已被弃用,并已替换为GeoDataAltitude、GeoDataLatitude和GeoDataLongitude。
编辑(2020 年 10 月):更新 2020 JSON 格式的命令
Exiftool 可以读取 Json 文件,因此如果有其他更改,运行该命令exiftool -s FILE.Json
将列出所有可以复制的标签和可用数据。