14

我正在使用exiv2来操作 jpeg 文件中的元数据。我需要将更多与图像处理相关的信息写入元数据。除了标准标签之外,是否可以创建自定义 Exif 标签?

4

4 回答 4

13

来自http://www.exif.org/Exif2-2.PDF

D. 与用户信息相关的标签

MakerNote
Exif 写入器制造商用于记录任何所需信息的标签。内容由制造商决定,但此标签不得用于其预期目的以外的任何用途。
标签 = 37500 (927C.H)
类型 = 未定义
计数 = 任意
默认值 = 无

UserComment
一个标签,Exif 用户可以在 ImageDescription 之外的图片上写关键字或评论,没有 ImageDescription 标签的字符代码限制。
标签 = 37510 (9286.H)
类型 = 未定义
计数 = 任意
默认值 = 无

exiv2 支持MakerNote标签:http ://dev.exiv2.org/projects/exiv2/wiki/How_to_add_support_for_a_new_makernote

如果您不想这样做,可以使用UserCommenthttp ://www.exiv2.org/doc/exifcomment_8cpp-example.html

于 2012-05-31T13:18:59.797 回答
4

拥有自定义元数据的更好方法是使用带有自定义命名空间的 Adob​​e XMP。

于 2012-10-07T12:09:15.950 回答
3

根据我的研究,EXIF 标签符合此处描述的一组标准标签。

在它声明的标准文档中(参考 EXIF 标签),

注册系统用于字符代码以避免重复。注册字符代码时,在参考栏中显示标准文档以指示字符格式规范。如果使用在日本没有明确规范的字符代码,如 Shift-JIS,则指定为 Undefined。

因此,我的理解是有一组标准的标签(已注册的标签),否则当您使用 exiftool 等工具查询它时,它会显示为“未定义”。

因此,为了拥有可被工具或其他实体识别的标签,您需要注册您的标签以成为标准化标签的一部分。

于 2018-01-11T04:01:43.997 回答
0

我确实找到了一种使用ExifTool将自定义 EXIF 标签添加到文件的方法

我必须为我想要的字段创建一个配置文件:

%Image::ExifTool::UserDefined = (
'Image::ExifTool::Exif::Main' => {
    0xd001 => {
        Name => 'Category',
        Writable => 'string',
        WriteGroup => 'IFD0',
    },
    0xd002 => {
        Name => 'PhotoID',
        Writable => 'string',
        WriteGroup => 'IFD0',
    },
    # add more user-defined EXIF tags here...
  },
);

然后您可以使用 exiftool 写入字段:

exiftool -config exif.config -EXIF:PhotoID=15 -EXIF:Category=Cars c:\temp\pic.png

要读取 EXIF 信息:

exiftool -config exif.config c:\temp\pic.png
于 2021-07-07T11:12:52.267 回答