ImageItemData 类 (gdiplusimaging.h)

ImageItemData 类用于存储和检索自定义图像元数据。 Windows GDI+ 支持 JPEG、PNG 和 GIF 图像文件的自定义元数据。

ImageItemData 具有以下类型的成员:

注解

若要从图像文件检索自定义元数据,请调用 Image::GetItemData。 若要在图像文件中存储自定义元数据,请执行以下步骤:

  1. 创建并初始化 ImageItemData 对象。
  2. 创建包含一个或多个 EncoderParameter 对象的数组的 EncoderParameters 对象
  3. 对于数组中的 EncoderParameter 对象之一,将 Value 成员设置为 ImageItemData 对象的地址。 按如下所示设置其他成员:Guid = EncoderImageItems、Type = EncoderParameterValueTypePointer、NumberOfValues = 1。
  4. 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)