Kotlin 如何将WIC XMP人员标记写入jpg?
我有一些图像,人们用xml格式标记信息。我希望编辑此信息,并将其添加到尚未包含此信息的图片中。通过查看xml,我假设它是基于 我还没有完全理解它的格式,但到目前为止我已经理解了它,我可以修改或格式化xml,我只是不知道在图像中的什么地方写它。我可能只是犯了一些愚蠢的错误,因为我对这些图像元数据没有经验。因此,如果你认为我只是走错了路,而且可以做得简单得多,请告诉我 在那些已经包含此xml的图像中,我可以使用搜索和替换来更新xml。然而,我有很多图片还没有包含这些信息,我不知道我应该把它写在图片里面的什么地方 已包含此信息的图像可以使用exiftool读取,如下所示:Kotlin 如何将WIC XMP人员标记写入jpg?,kotlin,exiftool,xmp,wic,Kotlin,Exiftool,Xmp,Wic,我有一些图像,人们用xml格式标记信息。我希望编辑此信息,并将其添加到尚未包含此信息的图片中。通过查看xml,我假设它是基于 我还没有完全理解它的格式,但到目前为止我已经理解了它,我可以修改或格式化xml,我只是不知道在图像中的什么地方写它。我可能只是犯了一些愚蠢的错误,因为我对这些图像元数据没有经验。因此,如果你认为我只是走错了路,而且可以做得简单得多,请告诉我 在那些已经包含此xml的图像中,我可以使用搜索和替换来更新xml。然而,我有很多图片还没有包含这些信息,我不知道我应该把它写在图片里
exiftool -xmp -b existingTags.JPG
结果是以下xml:
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP
Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:MP="http://ns.microsoft.com/photo/1.2/" xmlns:MPRI="http://ns.microsoft.com/photo/1.2/t/RegionInfo#"
xmlns:MPReg="http://ns.microsoft.com/photo/1.2/t/Region#" xmp:Rating="0"> <dc:subject> <rdf:Bag> <rdf:li>Valeriya
</rdf:li> </rdf:Bag> </dc:subject> <MP:RegionInfo rdf:parseType="Resource"> <MPRI:Regions> <rdf:Bag> <rdf:li
MPReg:Rectangle="0.48, 0.418, 0.059333, 0.089" MPReg:PersonDisplayName="findus_l"/> </rdf:Bag> </MPRI:Regions>
</MP:RegionInfo> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>
瓦莱里亚
但是,我无法使用exiftool编写信息。当我运行此命令时,它只是再次读取信息,而不是将文件内容写入图像:
exiftool -xmp<=alteredXMP.txt existingTags.JPG
exiftool-xmp您试图写入的数据是。XMP结构化数据是一种数据类型,但您应该能够通过将区域名称写入RegionPersonDisplayName
标记,并将区域维度写入RegionRectangle
来使用exiftool添加数据。使用示例中的数据,命令将为:
exiftool-RegionPersonDisplayName=findus_l-RegionRectangle=“0.48,0.418,0.059333,0.089”/path/to/files
如果必须写入多个区域,则只需添加它们,但必须保持名称和匹配维度的顺序相同。例如
exiftool-RegionPersonDisplayName=findus_l-RegionRectangle=“0.48,0.418,0.059333,0.089”-RegionPersonDisplayName=“John Smith”-RegionRectangle=“0.37645533,0.04499886,0.35111009,0.26633097”/path/to/files
这些命令将覆盖任何现有区域数据。如果在不覆盖的情况下添加新名称,则应将等号更改为PlusEqual+=
您需要在