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


Метод Image::GetPropertyIdList (gdiplusheaders.h)

Метод Image::GetPropertyIdList получает список идентификаторов свойств, используемых в метаданных этого объекта Image .

Синтаксис

Status GetPropertyIdList(
  [in]  UINT   numOfProperty,
  [out] PROPID *list
);

Параметры

[in] numOfProperty

Тип: UINT

Целое число, указывающее количество элементов в массиве списков . Вызовите метод Image::GetPropertyCount , чтобы определить это число.

[out] list

Тип: PROPID*

Указатель на массив, получающий идентификаторы свойств.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Метод Image::GetPropertyIdList возвращает массив объектов PROPID. Перед вызовом Image::GetPropertyIdList необходимо выделить достаточно большой буфер для получения этого массива. Чтобы определить размер требуемого буфера, можно вызвать метод Image::GetPropertyCount объекта Image . Размер буфера должен быть возвращаемым значением Image::GetPropertyCount , умноженным на sizeof( PROPID).

Примеры

В следующем примере создается объект Image на основе JPEG-файла. Код вызывает метод Image::GetPropertyIdList этого объекта Image , чтобы узнать, какие типы метаданных хранятся в изображении.

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

INT main()
{
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   UINT count = 0; 
   Image* image = new Image(L"FakePhoto.jpg");

   // How many types of metadata are in the image?
   count = image->GetPropertyCount();
   if(count == 0)
      return 0;

   // Allocate a buffer to receive an array of PROPIDs.
   PROPID* propIDs = new PROPID[count];

   image->GetPropertyIdList(count, propIDs);

   // List the retrieved IDs.
   for(UINT j = 0; j < count; ++j)
      printf("%x\n", propIDs[j]);

   delete [] propIDs;
   delete image;   
  
   GdiplusShutdown(gdiplusToken);
   return 0;
}

Приведенный выше код вместе с определенным файлом, FakePhoto.jpg, выводятся следующие выходные данные:

320
10f
110
9003
829a
5090
5091

В предыдущих выходных данных показано шестнадцатеричное значение каждого идентификатора свойства. Эти числа можно найти в Gdiplusimaging.h и узнать, что они представляют следующие теги свойств.

Шестнадцатеричное значение Тег свойства
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExif ExposureTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

Требования

Требование Значение
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusheaders.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Изображение

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Чтение и запись метаданных