Método Image::GetPropertyIdList (gdiplusheaders.h)

O método Image::GetPropertyIdList obtém uma lista dos identificadores de propriedade usados nos metadados deste objeto Image .

Sintaxe

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

Parâmetros

[in] numOfProperty

Tipo: UINT

Inteiro que especifica o número de elementos na matriz de lista . Chame o método Image::GetPropertyCount para determinar esse número.

[out] list

Tipo: PROPID*

Ponteiro para uma matriz que recebe os identificadores de propriedade.

Retornar valor

Tipo: Status

Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .

Se o método falhar, ele retornará um dos outros elementos da enumeração Status .

Comentários

O método Image::GetPropertyIdList retorna uma matriz de PROPIDs. Antes de chamar Image::GetPropertyIdList, você deve alocar um buffer grande o suficiente para receber essa matriz. Você pode chamar o método Image::GetPropertyCount de um objeto Image para determinar o tamanho do buffer necessário. O tamanho do buffer deve ser o valor retornado de Image::GetPropertyCount multiplicado por sizeof( PROPID).

Exemplos

O exemplo a seguir cria um objeto Image com base em um arquivo JPEG. O código chama o método Image::GetPropertyIdList desse objeto Image para descobrir quais tipos de metadados são armazenados na imagem.

#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;
}

O código anterior, juntamente com um arquivo específico, FakePhoto.jpg, produziu a seguinte saída:

320
10f
110
9003
829a
5090
5091

A saída anterior mostra o valor hexadecimal de cada identificador de propriedade. Você pode pesquisar esses números em Gdiplusimaging.h e descobrir que eles representam as marcas de propriedade a seguir.

Valor hexadecimal Marca de propriedade
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExifExposturaTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdiplusheaders.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Imagem

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Leitura e gravação de metadados