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 |