Condividi tramite


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

Vedi anche

Immagine

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Lettura e scrittura di metadati