Поделиться через


Класс ImageItemData (gdiplusimaging.h)

Класс ImageItemData используется для хранения и извлечения метаданных пользовательских изображений. Windows GDI+ поддерживает пользовательские метаданные для файлов изображений JPEG, PNG и GIF.

ImageItemData имеет следующие типы элементов:

Комментарии

Чтобы получить пользовательские метаданные из файла изображения, вызовите Image::GetItemData. Чтобы сохранить пользовательские метаданные в файле изображения, выполните следующие действия.

  1. Создайте и инициализируйте объект ImageItemData .
  2. Создайте объект EncoderParameters с массивом одного или нескольких объектов EncoderParameter .
  3. Для одного из объектов EncoderParameter в массиве задайте для элемента Value адрес объекта ImageItemData . Задайте другие элементы следующим образом: Guid = EncoderImageItems, Type = EncoderParameterValueTypePointer, NumberOfValues = 1.
  4. Передайте адрес объекта EncoderParameters методу Image::Save объекта Image .

Примеры

В следующем примере фрагмент пользовательских метаданных сохраняется в 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
Header gdiplusimaging.h (включая Gdiplus.h)