Image::GetPropertyIdList 方法 (gdiplusheaders.h)

Image::GetPropertyIdList 方法获取此 Image 对象的元数据中使用的属性标识符的列表。

语法

Status GetPropertyIdList(
  [in]  UINT   numOfProperty,
  [out] PROPID *list
);

参数

[in] numOfProperty

类型: UINT

指定 列表 数组中的元素数的整数。 调用 Image::GetPropertyCount 方法以确定此数字。

[out] list

类型: PROPID*

指向接收属性标识符的数组的指针。

返回值

类型: 状态

如果该方法成功,则返回 Ok,这是 Status 枚举的元素。

如果方法失败,它将返回 Status 枚举的其他元素之一。

注解

Image::GetPropertyIdList 方法返回 PROPID数组。 在调用 Image::GetPropertyIdList 之前,必须分配一个足够大的缓冲区来接收该数组。 可以调用 Image 对象的 Image::GetPropertyCount 方法来确定所需缓冲区的大小。 缓冲区的大小应为 Image::GetPropertyCount 的返回值乘以 sizeof ( PROPID) 。

示例

以下示例基于 JPEG 文件创建 Image 对象。 代码调用该 Image 对象的 Image::GetPropertyIdList 方法,以找出图像中存储的元数据类型。

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

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

   UINT count = 0; 
   Image* image = new Image(L"FakePhoto.jpg");

   // How many types of metadata are in the image?
   count = image->GetPropertyCount();
   if(count == 0)
      return 0;

   // Allocate a buffer to receive an array of PROPIDs.
   PROPID* propIDs = new PROPID[count];

   image->GetPropertyIdList(count, propIDs);

   // List the retrieved IDs.
   for(UINT j = 0; j < count; ++j)
      printf("%x\n", propIDs[j]);

   delete [] propIDs;
   delete image;   
  
   GdiplusShutdown(gdiplusToken);
   return 0;
}

前面的代码以及特定文件 FakePhoto.jpg 生成了以下输出:

320
10f
110
9003
829a
5090
5091

前面的输出显示每个属性标识符的十六进制值。 可以在 Gdiplusimaging.h 中查找这些数字,并发现它们表示以下属性标记。

十六进制值 属性标记
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExifExposureTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusheaders.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

图像

Image::GetAllPropertyItems

Image::GetPropertyCount

Image::GetPropertyItem

Image::GetPropertyItemSize

Image::GetPropertySize

Image::RemovePropertyItem

Image::SetPropertyItem

PropertyItem

读取和写入元数据