自定义Exif标签

时间:2012-05-31 12:47:30

标签: exif

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

4 个答案:

答案 0 :(得分:7)

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

  

<强> d。与用户信息相关的标签

  的制造商注释
  标签   Exif作家的制造商记录任何所需的信息。该   内容由制造商决定,但不应使用此标记   用于除预期目的之外的任何其他。
标签= 37500(927C.H)
类型=   UNDEFINED
计数=任何
默认=无

     

UserComment
用于Exif用户在其上撰写关键字或评论的标记   除了ImageDescription中的图像,没有角色   ImageDescription标记的代码限制。
标签= 37510(9286.H)
  Type = UNDEFINED
Count = Any
默认=无

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

答案 1 :(得分:4)

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

答案 2 :(得分:1)

根据我的研究,EXIF标签符合here所述的一组标准标签。

在标准文件中(参考EXIF标签),

  

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

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

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

答案 3 :(得分: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