Image::GetPropertyIdList-Methode (gdiplusheaders.h)

Die Image::GetPropertyIdList-Methode ruft eine Liste der Eigenschaftenbezeichner ab, die in den Metadaten dieses Image-Objekts verwendet werden.

Syntax

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

Parameter

[in] numOfProperty

Typ: UINT

Ganzzahl, die die Anzahl der Elemente im Listenarray angibt. Rufen Sie die Image::GetPropertyCount-Methode auf, um diese Nummer zu bestimmen.

[out] list

Typ: PROPID*

Zeiger auf ein Array, das die Eigenschaftenbezeichner empfängt.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, gibt sie eines der anderen Elemente der Status-Enumeration zurück.

Hinweise

Die Image::GetPropertyIdList-Methode gibt ein Array von PROPIDs zurück. Bevor Sie Image::GetPropertyIdList aufrufen, müssen Sie einen Puffer zuordnen, der groß genug ist, um dieses Array zu empfangen. Sie können die Image::GetPropertyCount-Methode eines Image-Objekts aufrufen, um die Größe des erforderlichen Puffers zu bestimmen. Die Größe des Puffers sollte der Rückgabewert von Image::GetPropertyCount multipliziert mit sizeof( PROPID) sein.

Beispiele

Im folgenden Beispiel wird ein Image-Objekt basierend auf einer JPEG-Datei erstellt. Der Code ruft die Image::GetPropertyIdList-Methode dieses Image-Objekts auf, um herauszufinden, welche Metadatentypen im Image gespeichert sind.

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

Der vorherige Code hat zusammen mit einer bestimmten Datei FakePhoto.jpg die folgende Ausgabe erzeugt:

320
10f
110
9003
829a
5090
5091

Die vorherige Ausgabe zeigt den Hexadezimalwert der einzelnen Eigenschaftenbezeichner an. Sie können diese Zahlen in Gdiplusimaging.h nachschlagen und herausfinden, dass sie die folgenden Eigenschaftentags darstellen.

Hexadezimalwert Eigenschaftstag
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExifExposureTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusheaders.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Image

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Lesen und Schreiben von Metadaten