有没有一种标准方法可以使用 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");
我有一个程序可以将结果生成为 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");