在额外的fi中存储文件元数据

2024-03-29 01:51:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆图像文件(大部分是.jpg)。我想存储有关这些文件的元数据(例如,主颜色、颜色分布、最大梯度流场、兴趣点等)。这些数据字段不是固定的,也不是所有图像都可用的。在

现在,我将每个文件的元数据存储为一个单独的文件,文件名相同,扩展名不同。格式仅为文本:

metadataFieldName1 metadataFieldValue1
metadataFieldName2 metadataFieldValue2

这让我想知道,有没有更好/更简单的方法来存储这些元数据?我想到了ProtocolBuffer,因为我需要能够在C++和Python中读写这些信息。但是,如何支持某些元数据不可用的情况?在


Tags: 文件数据图像文本颜色文件名格式图像文件
3条回答

http://www.yaml.org。YAML不像XML那么冗长,而且更易于阅读。在

<>有C++、Python和许多其他语言的YAML库。在

示例:

import yaml

data = { "field1" : "value1",
         "field2" : "value2" }

serializedData = yaml.dump(data, default_flow_style=False)

open("datafile", "w").write(serializedData)

我建议您将这些元数据存储在图像文件本身中。在

大多数图像格式支持存储元数据。我认为.jpeg通过Exif来支持它。在

如果您在Windows上,您可以使用WIC在unified manner中存储和检索元数据。在

为什么是协议缓冲区而不是XML或INI文件或任何文本格式?只需选择一些格式。。。在

“元数据不可用”是什么意思?这取决于您的应用程序对此类错误情况作出响应…这与存储格式有什么关系?在

相关问题 更多 >