有没有办法从命令行从 darktable 读取图像标签,即类似的方法darktable --get-tags myimage.jpg
会返回该图像的所有标签。
如何从命令行标记图像或修改标签,以便将标签集成到 darktable 数据库中?
编辑
darktable 似乎使用 xmp sidecar 文件,标签位于 xmp sidecar 文件中,例如
<dc:subject>
<rdf:Seq>
<rdf:li>myTag1</rdf:li>
<rdf:li>myTag2</rdf:li>
</rdf:Seq>
</dc:subject>
<lr:hierarchicalSubject>
<rdf:Seq>
<rdf:li>myTag1</rdf:li>
<rdf:li>myTag2</rdf:li>
</rdf:Seq>
</lr:hierarchicalSubject>
但是我不知道如何从命令行读取、设置和修改它。我的第一个想法是使用sed
orawk
但这些都是针对单行中的事情。
另一种方法是直接读取和写入 darktable 数据库,该数据库另外用于 xmp 文件。
编辑2
我刚刚意识到exiftool
可以设置xmp sidecar文件的标签:例如
exiftool -Subject=myNewTag myimage.jpg.xmp
exiftool -`Hierarchical*Subject*`=myNewTag myimage.jpg.xmp
删除所有标签并设置myNewTag
为唯一标签。或者
exiftool -Subject+=myAdditionalTag myimage.jpg.xmp
exiftool -`Hierarchical*Subject*`+=myAdditionalTag myimage.jpg.xmp
将标签添加myAdditionalTag
到标签列表中。
然后我检查了该选项look for updated xmp files on startup
在 darktable 中并希望它能在重新加载时更新标签。然而,即使我像第一种情况一样删除了旧标签,darktable 也会向我显示新标签和旧的(已删除的)标签。
所以这似乎不是一条路。