Поделиться через


Метод Image::GetFrameDimensionsList (gdiplusheaders.h)

Метод Image::GetFrameDimensionsList получает идентификаторы размеров кадра этого объекта Image .

Синтаксис

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

Параметры

[out] dimensionIDs

Тип: GUID*

Указатель на массив, получающий идентификаторы. Идентификаторы GUID, определяющие различные измерения, определяются в Gdiplusimaging.h.

[in] count

Тип: UINT

Целое число, указывающее количество элементов в массиве dimensionIDs . Вызовите метод Image::GetFrameDimensionsCount , чтобы определить это число.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Этот метод возвращает сведения о многокадровых изображениях, которые бывают двух стилей: с несколькими страницами и с несколькими разрешениями.

Многостраничный образ — это изображение, содержащее несколько изображений. Каждая страница содержит одно изображение (или фрейм). Эти страницы (изображения или кадры) обычно отображаются последовательно для создания анимированной последовательности, например в анимированном GIF-файле.

Изображение с несколькими разрешениями — это изображение, содержащее несколько копий изображения с разными разрешениями.

Windows GDI+ может поддерживать произвольное количество страниц (изображений или кадров), а также произвольное количество разрешений.

Примеры

Следующее консольное приложение создает объект Image на основе TIFF-файла. Код вызывает метод Image::GetFrameDimensionsCount , чтобы узнать, сколько размеров кадров имеет объект Image . Каждое из этих измерений кадра идентифицируется идентификатором GUID, а вызов GetFrameDimensionsList извлекает эти идентификаторы GUID. Первый ИДЕНТИФИКАТОР GUID имеет индекс 0 в массиве pDimensionIDs . Вызов метода 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.

Вы можете найти отображаемый GUID в Gdiplusimaging.h и увидеть, что он является идентификатором для измерения страницы. Таким образом, выходные данные программы сообщают нам, что файл Multiframe.tif содержит четыре страницы; то есть четыре кадра в измерении страницы.

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusheaders.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Копирование отдельных кадров из изображения Multiple-Frame

Создание и сохранение многокадрового изображения

EncoderParameter

Изображение

Image::GetFrameCount

Image::GetFrameDimensionsCount

Методы Image::SaveAdd