Metodo Image::GetPropertyIdList (gdiplusheaders.h)
Il metodo Image::GetPropertyIdList ottiene un elenco degli identificatori di proprietà usati nei metadati di questo oggetto Image .
Sintassi
Status GetPropertyIdList(
[in] UINT numOfProperty,
[out] PROPID *list
);
Parametri
[in] numOfProperty
Tipo: UINT
Intero che specifica il numero di elementi nella matrice di elenco . Chiamare il metodo Image::GetPropertyCount per determinare questo numero.
[out] list
Tipo: PROPID*
Puntatore a una matrice che riceve gli identificatori di proprietà.
Valore restituito
Tipo: Stato
Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .
Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .
Commenti
Il metodo Image::GetPropertyIdList restituisce una matrice di PROPIDs. Prima di chiamare Image::GetPropertyIdList, è necessario allocare un buffer abbastanza grande per ricevere tale matrice. È possibile chiamare il metodo Image::GetPropertyCount di un oggetto Image per determinare le dimensioni del buffer richiesto. Le dimensioni del buffer devono essere il valore restituito di Image::GetPropertyCount moltiplicato per sizeof( PROPID).
Esempio
Nell'esempio seguente viene creato un oggetto Image basato su un file JPEG. Il codice chiama il metodo Image::GetPropertyIdList dell'oggetto Image per scoprire quali tipi di metadati vengono archiviati nell'immagine.
#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;
}
Il codice precedente, insieme a un determinato file, FakePhoto.jpg, ha prodotto l'output seguente:
320
10f
110
9003
829a
5090
5091
L'output precedente mostra il valore esadecimale di ogni identificatore di proprietà. È possibile cercare questi numeri in Gdiplusimaging.h e scoprire che rappresentano i tag delle proprietà seguenti.
Valore esadecimale | Tag proprietà |
---|---|
0x0320 | PropertyTagImageTitle |
0x010f | PropertyTagEquipMake |
0x0110 | PropertyTagEquipModel |
0x9003 | PropertyTagExifDTOriginal |
0x829a | PropertyTagExifExposureTime |
0x5090 | PropertyTagLuminanceTable |
0x5091 | PropertyTagChrominanceTable |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP, Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | gdiplusheaders.h (include Gdiplus.h) |
Libreria | Gdiplus.lib |
DLL | Gdiplus.dll |