有没有一种标准方法可以使用 FreeImage 在 TIFF 文件中添加文本信息?

Is there a standard way to add textual information in a TIFF file with FreeImage?

我有一个程序可以将结果生成为 TIFF 文件。我想在这些文件中添加一些文本信息以跟踪程序参数。

我知道可以在tiff文件中添加一个名为"ImageDescription"的标签(根据specification file p34),如果我能把程序参数放在那个字段里就可以了对我来说。

但是可以用FreeImage设置这个标签吗?

如果不可能,我可以使用 FreeImage 将 EXIF 信息添加到我的 tiff 文件中吗?

我回答我自己的问题。

使用 FreeImage,添加元数据的一种简单方法是使用 IPTC 标签:

void addTag(FIBITMAP *bitmap, const char *key, const char *value)
{
    FITAG *tag = FreeImage_CreateTag();
    size_t len = strlen(value)+1;
    FreeImage_SetTagKey(tag, len);
    FreeImage_SetTagCount(tag, len);
    FreeImage_SetTagType(tag, FIDT_ASCII);
    FreeImage_SetTagValue(tag, value);
    FreeImage_SetMetadata(FIMD_IPTC, bitmap, FreeImage_GetTagKey(tag), tag);
    FreeImage_DeleteTag(tag);
}

并且,将这些函数与有效 IPTC tags:

// set creator's name, limited to 32 bytes
addTag(bitmap, "By-line", "Creator's name");
// set keyword, limited to 64 bytes
addTag(bitmap, "Keywords", "Param1=foo;Param2=bar");