Image::GetFrameDimensionsList 方法 (gdiplusheaders.h)

Image::GetFrameDimensionsList 方法获取此 Image 对象的帧尺寸的标识符。

语法

Status GetFrameDimensionsList(
  [out] GUID *dimensionIDs,
  [in]  UINT count
);

parameters

[out] dimensionIDs

类型: GUID*

指向接收标识符的数组的指针。 用于标识各种维度的 GUID 在 Gdiplusimaging.h 中定义。

[in] count

类型: UINT

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

返回值

类型: 状态

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

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

注解

此方法返回有关多帧图像的信息,这些图像有两种样式:多页和多分辨率。

多页图像是包含多个图像的图像。 每个页面包含一个图像 (或框架) 。 这些页面 (、图像或帧) 通常连续显示,以生成动画序列,例如在动态 GIF 文件中。

多分辨率图像是包含不同分辨率图像的多个副本的图像。

Windows GDI+ 可以支持任意数量的页面 (或图像、) 帧以及任意数量的分辨率。

示例

以下控制台应用程序基于 TIFF 文件创建 Image 对象。 该代码调用 Image::GetFrameDimensionsCount 方法,找出 Image 对象具有多少帧尺寸。 每个帧维度都由 GUID 标识,对 GetFrameDimensionsList 的 调用将检索这些 GUID。 第一个 GUID 位于 pDimensionIDs 数组中的索引 0 处。 对 Image::GetFrameCount 方法的调用确定第一个 GUID 标识的维度中的帧数。

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

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

   Image* image = new Image(L"Multiframe.tif");

   // How many frame dimensions does the Image object have?
   UINT count = 0;
   count = image->GetFrameDimensionsCount();
   printf("The number of dimensions is %d.\n", count);
   GUID* pDimensionIDs = (GUID*)malloc(sizeof(GUID)*count);

   // Get the list of frame dimensions from the Image object.
   image->GetFrameDimensionsList(pDimensionIDs, count);

   // Display the GUID of the first (and only) frame dimension.
   WCHAR strGuid[39];
   StringFromGUID2(pDimensionIDs[0], strGuid, 39);
   wprintf(L"The first (and only) dimension ID is %s.\n", strGuid);

   // Get the number of frames in the first dimension.
   UINT frameCount = image->GetFrameCount(&pDimensionIDs[0]);
   printf("The number of frames in that dimension is %d.\n", frameCount);
    
   free(pDimensionIDs);
   delete(image);
   GdiplusShutdown(gdiplusToken);
   return 0;
}

上述代码以及特定文件 Multiframe.tif 生成了以下输出:

The number of dimensions is 1.
The first (and only) dimension ID is {7462DC86-6180-4C7E-8E3F-EE7333A7A483}.
The number of frames in that dimension is 4.

可以在 Gdiplusimaging.h 中查找显示的 GUID,并查看它是页面维度的标识符。 因此,程序输出告诉我们文件 Multiframe.tif 有四页;即页面维度中的四个框架。

要求

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

另请参阅

从 Multiple-Frame 图像复制单个帧

创建和保存多帧图像

EncoderParameter

图像

Image::GetFrameCount

Image::GetFrameDimensionsCount

Image::SaveAdd 方法