Freigeben über


Image::GetAllPropertyItems-Methode (gdiplusheaders.h)

Die Image::GetAllPropertyItems-Methode ruft alle Eigenschaftenelemente (Metadaten) ab, die in diesem Image-Objekt gespeichert sind.

Syntax

Status GetAllPropertyItems(
  [in]  UINT         totalBufferSize,
  [in]  UINT         numProperties,
  [out] PropertyItem *allItems
);

Parameter

[in] totalBufferSize

Typ: UINT

Eine ganze Zahl, die die Größe des AllItems-Puffers in Bytes angibt. Rufen Sie die Image::GetPropertySize-Methode auf, um die erforderliche Größe zu erhalten.

[in] numProperties

Typ: UINT

Ganzzahl, die die Anzahl der Eigenschaften im Bild angibt. Rufen Sie die Image::GetPropertySize-Methode auf, um diese Nummer abzurufen.

[out] allItems

Typ: PropertyItem*

Zeiger auf ein Array von PropertyItem-Objekten , das die Eigenschaftselemente 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, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Hinweise

Einige Bilddateien enthalten Metadaten, die Sie lesen können, um Merkmale des Bilds zu bestimmen. Beispielsweise kann ein digitales Foto Metadaten enthalten, die Sie lesen können, um Marke und Modell der Kamera zu bestimmen, die zum Aufnehmen des Bilds verwendet wurde.

GDI+ speichert ein einzelnes Metadatenelement in einem PropertyItem-Objekt . Die Image::GetAllPropertyItems-Methode gibt ein Array von PropertyItem-Objekten zurück. Bevor Sie Image::GetAllPropertyItems aufrufen, müssen Sie einen Puffer zuordnen, der groß genug ist, um dieses Array zu empfangen. Sie können die Image::GetPropertySize-Methode eines Image-Objekts aufrufen, um die Größe des erforderlichen Puffers in Bytes abzurufen. Die Image::GetPropertySize-Methode gibt Ihnen auch die Anzahl der Eigenschaften (Metadatenelemente) im Bild an.

In Gdiplusimaging.h sind mehrere Enumerationen und Konstanten im Zusammenhang mit Bildmetadaten definiert.

Beispiele

Im folgenden Beispiel wird ein Image-Objekt basierend auf einer JPEG-Datei erstellt. Der Code ruft die GetAllPropertyItems-Methode dieses Image-Objekts auf, um dessen Eigenschaftselemente (Metadaten) abzurufen.

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

INT main()
{
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   // Create an Image object based on a JPEG file.
   Image* image = new Image(L"FakePhoto.jpg"); 

   // Find out how many property items are in the image, and find out the
   // required size of the buffer that will receive those property items.
   UINT totalBufferSize;
   UINT numProperties;
   image->GetPropertySize(&totalBufferSize, &numProperties);

   // Allocate the buffer that will receive the property items.
   PropertyItem* pAllItems = (PropertyItem*)malloc(totalBufferSize);

   // Fill the buffer.
   image->GetAllPropertyItems(totalBufferSize, numProperties, pAllItems);

// Print the id data member of each property item.
   for(UINT j = 0; j < numProperties; ++j)
   {
      printf("%x\n", pAllItems[j].id);
   }

   free(pAllItems);
   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

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

320
10f
110
9003
829a
5090
5091

Die vorherige Ausgabe zeigt eine hexadezimale ID-Nummer für jedes Eigenschaftselement an. Sie können diese ID-Nummern in Gdiplusimaging.h suchen und herausfinden, dass sie die folgenden Eigenschaftentags darstellen.

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

Anforderungen

   
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

Bild

Image::GetPropertyCount

Image::GetPropertyIdList

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Lesen und Schreiben von Metadaten