我正在使用exiv2来处理jpeg文件中的元数据。我需要将更多与图像处理相关的信息写入元数据中。是否可以创建除标准之外的Custom Exif标签?
答案 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
如果您不想这样做,可以使用UserComment
:http://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