gdh*_*gdh 9 macos xmp exif spotlight exiftool
在我的图像处理软件周围,我使用exiftool成功地从Cr2,TIFF,JPG文件中删除exif信息.添加的标签,例如"关键字",在OSX(山狮)Finder,预览中都可见,并且被Spotlight很好地编入索引.
对于PNG,我需要回退到XMP,因为这是PNG的元数据容器.但是,预览和SpotLight似乎都没有选择使用exiftool的标签.相反,如果我首先在预览中添加标签并使用exiftool稍后添加新标签,则此IS已编入索引.我在这里看到的差异在XMP原始数据中,exiftool新创建了一个标题,而Preview没有.
例如,请查看PNG上维基百科页面中的以下PNG,无需元数据https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png:

使用exiftool添加关键字,然后转储XMP数据块:
exiftool -xmp-dc:subject=ViaExifSubject ./PNG_transparency_demonstration_1.png
exiftool -xmp -b ./PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)
提供以下XMP数据:
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 9.02'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about=''
xmlns:dc='http://purl.org/dc/elements/1.1/'>
<dc:subject>
<rdf:Bag>
<rdf:li>ViaExifSubject</rdf:li>
</rdf:Bag>
</dc:subject>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
Run Code Online (Sandbox Code Playgroud)
但是,在"预览"或"查找器"信息面板中,未找到"ViaExifSubject".
或者,使用OSX预览添加注释(在预览中打开,显示检查器,转到关键字选项卡,单击'+'添加关键字).XMP再次通过exiftool转储:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.1.2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:subject>
<rdf:Bag>
<rdf:li>viaPreview</rdf:li>
</rdf:Bag>
</dc:subject>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
Run Code Online (Sandbox Code Playgroud)
的xpacket报头中不存在预览生成的关键词,并且XMP工具包是不同的.现在可以看到"viaPreview"标签,例如mdls在CLI上使用.
将原始XMP信息推送到干净文件中也不会产生预期结果:
exiftool "-xmp<=viaexif.xmp" PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,如果我首先使用预览创建一个标签,那么执行上面的命令,反映新标签我怀疑我正在监督需要"激活"的外部数据解析器,拾取标签并将它们放在不同的位置商店(例如.DS_store).我还没有看到任何添加的xattr.
这些是我的问题:
我在我的磁盘上挖出了我的xmp_sdk并尝试了提供的示例:
ModifyXMP可以将"纯"XMP信息写入到OSG Finder中显示的PNG中 - 这是一个很好的目标.
ReadingXMP可以将ExifTool插入的XMP信息读入PNG,尽管此信息未在OSX Finder中显示.
查看ModifyXMP的输出和exiftool插入完全相同的XMP blob时,文件大小相似.差异显示exiftool附加在文件末尾,XMP sdk将其放在PNG的标题中.在XMP规范指出,"鼓励编码器放置在文件开头的块,但这不是必需的."
结论:exiftool如何编写XMP存在(轻微)差异,这尤其与OSXs元数据检索混淆.
目前:
我转发到exiftools的论坛上,作者Phil Harvey回复道:
我做了一些Apple Preview游戏,不仅在文件末尾不识别XMP,而且在向图像添加关键字时删除了这个XMP.我的猜测是,如果它出现在IDAT块之后,Apple软件会忽略XMP.如果XMP规范强制要求在IDAT之前使用XMP块,那将是非常好的,但它没有,所以这必须被认为是Apple软件中的一个错误.我已将此添加到已知问题列表中.
最后,Phil Harvey决定在Exiftool中解决这个问题:
我已经做了很多工作,Exiftool 9.40将有一个新的选项,允许你在PNG IDAT块之前编写XMP.相应的命令如下所示:
exiftool -api PNGEarlyXMP...
在Apple发布了一个错误 - 2014年12月更新:Apple关闭了我的错误,声称他们不会对此话题采取任何行动
小智 0
根据您的观察,exiftoolIPTC 和 XMP 似乎并不协调。您可以尝试的是尝试更改 PNG 内的 IPTC 和 XMP 并查看它是否可搜索。
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |