Метод 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 |