Méthode Image::GetAllPropertyItems (gdiplusheaders.h)

La méthode Image::GetAllPropertyItems obtient tous les éléments de propriété (métadonnées) stockés dans cet objet Image .

Syntaxe

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

Paramètres

[in] totalBufferSize

Type : UINT

Entier qui spécifie la taille, en octets, de la mémoire tampon allItems . Appelez la méthode Image::GetPropertySize pour obtenir la taille requise.

[in] numProperties

Type : UINT

Entier qui spécifie le nombre de propriétés dans l’image. Appelez la méthode Image::GetPropertySize pour obtenir ce numéro.

[out] allItems

Type : PropertyItem*

Pointeur vers un tableau d’objets PropertyItem qui reçoit les éléments de propriété.

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

Certains fichiers image contiennent des métadonnées que vous pouvez lire pour déterminer les caractéristiques de l’image. Par exemple, une photo numérique peut contenir des métadonnées que vous pouvez lire pour déterminer la fabrique et le modèle de l’appareil photo utilisé pour capturer l’image.

GDI+ stocke un élément de métadonnées individuel dans un objet PropertyItem . La méthode Image::GetAllPropertyItems retourne un tableau d’objets PropertyItem . Avant d’appeler Image::GetAllPropertyItems, vous devez allouer une mémoire tampon suffisamment grande pour recevoir ce tableau. Vous pouvez appeler la méthode Image::GetPropertySize d’un objet Image pour obtenir la taille, en octets, de la mémoire tampon requise. La méthode Image::GetPropertySize vous indique également le nombre de propriétés (morceaux de métadonnées) dans l’image.

Plusieurs énumérations et constantes liées aux métadonnées d’image sont définies dans Gdiplusimaging.h.

Exemples

L’exemple suivant crée un objet Image basé sur un fichier JPEG. Le code appelle la méthode GetAllPropertyItems de cet objet Image pour obtenir ses éléments de propriété (métadonnées).

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

Le code précédent, ainsi qu’un fichier particulier, FakePhoto.jpg, ont produit la sortie suivante :

320
10f
110
9003
829a
5090
5091

La sortie précédente affiche un numéro d’ID hexadécimal pour chaque élément de propriété. Vous pouvez rechercher ces numéros d’ID dans Gdiplusimaging.h et découvrir qu’ils représentent les balises de propriété suivantes.

Valeur hexadécimale Balise de propriété
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExifExposureTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

Configuration requise

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusheaders.h (inclure Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Image

Image::GetPropertyCount

Image::GetPropertyIdList

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

Lecture et écriture de métadonnées