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 |