Exiftool现在已经具备这个功能,自10.47版本起支持此操作。在我的测试中,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
或
-Title
。
description: 文件的描述。适当的位置是IPTC:Caption-Abstract、XMP:Description和EXIF:ImageDescription。你可以使用
'-Caption-Abstract<Description'
、
-Description
,或
'-ImageDescription<Description'
进行拷贝。
title: 上传文件的名称。这个标签可以复制到
Title
、
ObjectDescription
或
PreservedFileName
中。
people: 我不确定,但我猜测如果文件在像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' '-Imageexiftool -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
将列出所有标签和可复制的可用数据。
"-CreateDate<CreationTimeTimestamp" "-ModifyDate<PhotoLastModifiedTimeTimestamp"
更好。 - Namek Master