Metodo Image::GetPropertyItem (gdiplusheaders.h)
Il metodo Image::GetPropertyItem ottiene un elemento di proprietà specificato (parte dei metadati) da questo oggetto Image .
Sintassi
Status GetPropertyItem(
[in] PROPID propId,
[in] UINT propSize,
[out] PropertyItem *buffer
);
Parametri
[in] propId
Tipo: PROPID
Intero che identifica l'elemento della proprietà da recuperare.
[in] propSize
Tipo: UINT
Intero che specifica le dimensioni, in byte, dell'elemento della proprietà da recuperare. Chiamare il metodo Image::GetPropertyItemSize per determinare le dimensioni.
[out] buffer
Tipo: PropertyItem*
Puntatore a un oggetto PropertyItem che riceve l'elemento della 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::GetPropertyItem restituisce un oggetto PropertyItem . Prima di chiamare Image::GetPropertyItem, è necessario allocare un buffer abbastanza grande per ricevere tale oggetto: le dimensioni variano in base al tipo di dati e al valore dell'elemento della proprietà. È possibile chiamare il metodo Image::GetPropertyItemSize di un oggetto Image per ottenere le dimensioni, in byte, del buffer richiesto.
Esempio
Nell'esempio seguente viene creato un oggetto Image basato su un file JPEG. Il codice ottiene il make della fotocamera che ha acquisito l'immagine passando la costante PropertyTagEquipMake al metodo Image::GetPropertyItem dell'oggetto Image .
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
INT main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
UINT size = 0;
PropertyItem* propertyItem = NULL;
Image* image = new Image(L"FakePhoto.jpg");
// Assume that the image has a property item of type PropertyItemEquipMake.
// Get the size of that property item.
size = image->GetPropertyItemSize(PropertyTagEquipMake);
// Allocate a buffer to receive the property item.
propertyItem = (PropertyItem*)malloc(size);
// Get the property item.
image->GetPropertyItem(PropertyTagEquipMake, size, propertyItem);
// Display the members of the retrieved PropertyItem object.
printf("The length of the property item is %u.\n", propertyItem->length);
printf("The data type of the property item is %u.\n", propertyItem->type);
if(propertyItem->type == PropertyTagTypeASCII)
printf("The value of the property item is %s.\n", propertyItem->value);
free(propertyItem);
delete image;
GdiplusShutdown(gdiplusToken);
return 0;
}
Il codice precedente, insieme a un determinato file, FakePhoto.jpg, ha prodotto l'output seguente. Si noti che il tipo di dati è 2, il valore della costante PropertyTagTypeASCII definita in Gdiplusimaging.h.
The length of the property item is 17.
The data type of the property item is 2.
The value of the property item is Northwind Traders.
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 |