Image::GetPropertySize-Methode (gdiplusheaders.h)
Die Image::GetPropertySize-Methode ruft die Gesamtgröße aller in diesem Image-Objekt gespeicherten Eigenschaftenelemente in Bytes ab. Die Image::GetPropertySize-Methode ruft auch die Anzahl der Eigenschaftenelemente ab, die in diesem Image-Objekt gespeichert sind.
Syntax
Status GetPropertySize(
[out] UINT *totalBufferSize,
[out] UINT *numProperties
);
Parameter
[out] totalBufferSize
Typ: UINT*
Zeiger auf ein UINT , das die Gesamtgröße aller Eigenschaftselemente in Bytes empfängt.
[out] numProperties
Typ: UINT*
Zeiger auf ein UINT , das die Anzahl der Eigenschaftenelemente 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
Windows GDI+ speichert einzelne Metadaten 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 (Metadatenteile) im Bild an.
Beispiele
Im folgenden Beispiel wird ein Image-Objekt basierend auf einer JPEG-Datei erstellt. Der Code ruft die Image::GetAllPropertyItems-Methode dieses Image-Objekts auf, um seine 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 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 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
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 |