ImageItemData 类 (gdiplusimaging.h)
ImageItemData 类用于存储和检索自定义图像元数据。 Windows GDI+ 支持 JPEG、PNG 和 GIF 图像文件的自定义元数据。
ImageItemData 具有以下类型的成员:
注解
若要从图像文件检索自定义元数据,请调用 Image::GetItemData。 若要在图像文件中存储自定义元数据,请执行以下步骤:
- 创建并初始化 ImageItemData 对象。
- 创建包含一个或多个 EncoderParameter 对象的数组的 EncoderParameters 对象。
- 对于数组中的 EncoderParameter 对象之一,将 Value 成员设置为 ImageItemData 对象的地址。 按如下所示设置其他成员:Guid = EncoderImageItems、Type = EncoderParameterValueTypePointer、NumberOfValues = 1。
- 将 EncoderParameters 对象的地址传递给 Image 对象的 Image::Save 方法。
示例
以下示例将一段自定义元数据保存在 JPEG 文件中。 代码依赖于帮助程序函数 GetEncoderClsid 来获取 JPEG 编码器的类标识符。 若要查看 GetEncoderClsid 的源代码,请参阅 检索编码器的类标识符。
CHAR myData[] = "Byte sequence of your choice";
BYTE description = 0xE4;
ImageItemData itemData;
itemData.Size = sizeof(itemData);
itemData.DescSize = 1;
itemData.Desc = &description;
itemData.DataSize = 28;
itemData.Data = (VOID*)myData;
itemData.Position = ItemDataPositionAfterHeader;
// Get the Clsid of the JPEG encoder.
CLSID encoderClsid;
GetEncoderClsid(L"image/jpeg", &encoderClsid);
EncoderParameters encoderParameters;
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderImageItems;
encoderParameters.Parameter[0].Type = EncoderParameterValueTypePointer;
encoderParameters.Parameter[0].NumberOfValues = 1;
encoderParameters.Parameter[0].Value = &itemData;
Image image(L"River.jpg");
image.Save(L"River2.jpg", &encoderClsid, &encoderParameters);
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | gdiplusimaging.h (包括 Gdiplus.h) |