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


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

Метод Image::GetPropertyItemSize получает размер в байтах указанного элемента свойства этого объекта Image .

Синтаксис

UINT GetPropertyItemSize(
  [in] PROPID propId
);

Параметры

[in] propId

Тип: PROPID

Целое число, идентифицирующее элемент свойства.

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

Тип: UINT

Этот метод возвращает размер указанного элемента свойства объекта Image (в байтах).

Комментарии

Метод Image::GetPropertyItem возвращает объект PropertyItem . Перед вызовом Image::GetPropertyItem необходимо выделить буфер, достаточно большой для получения этого объекта. Размер зависит от типа данных и значения элемента свойства. Вы можете вызвать метод Image::GetPropertyItemSize объекта Image , чтобы получить размер необходимого буфера в байтах.

Примеры

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

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

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

   UINT size = 0;
   PropertyItem* propertyItem = NULL;
   Image* image = new Image(L"FakePhoto.jpg");

   // Assume that the image has a property item of type PropertyItemEquipMake.
   // Get the size of that property item.
   size = image->GetPropertyItemSize(PropertyTagEquipMake);

   // Allocate a buffer to receive the property item.
   propertyItem = (PropertyItem*)malloc(size);

   // Get the property item.
   image->GetPropertyItem(PropertyTagEquipMake, size, propertyItem);

   // Display the members of the retrieved PropertyItem object.
   printf("The length of the property item is %u.\n", propertyItem->length);
   printf("The data type of the property item is %u.\n", propertyItem->type);

   if(propertyItem->type == PropertyTagTypeASCII)
      printf("The value of the property item is %s.\n", propertyItem->value);

   free(propertyItem);
   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

Приведенный выше код вместе с определенным файлом FakePhoto.jpg выводятся следующие выходные данные. Обратите внимание, что тип данных равен 2, что является значением константы PropertyTagTypeASCII, определенной в Gdiplusimaging.h.

The length of the property item is 17.
The data type of the property item is 2.
The value of the property item is Northwind Traders.

Требования

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

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

Изображение

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyIdList

Image::GetPropertyItem

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

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