Метод 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
Создание и сохранение многокадрового изображения