Método Image::GetFrameDimensionsList (gdiplusheaders.h)

O método Image::GetFrameDimensionsList obtém os identificadores para as dimensões de quadro deste objeto Image .

Sintaxe

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

Parâmetros

[out] dimensionIDs

Tipo: GUID*

Ponteiro para uma matriz que recebe os identificadores. GuiDs que identificam várias dimensões são definidos em Gdiplusimaging.h.

[in] count

Tipo: UINT

Inteiro que especifica o número de elementos na matriz dimensionIDs . Chame o método Image::GetFrameDimensionsCount para determinar esse número.

Valor retornado

Tipo: Status

Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .

Se o método falhar, ele retornará um dos outros elementos da enumeração Status .

Comentários

Esse método retorna informações sobre imagens de vários quadros, que vêm em dois estilos: várias páginas e várias resoluções.

Uma imagem de várias páginas é uma imagem que contém mais de uma imagem. Cada página contém uma única imagem (ou quadro). Essas páginas (ou imagens ou quadros) normalmente são exibidas sucessivamente para produzir uma sequência animada, como em um arquivo GIF animado.

Uma imagem de resolução múltipla é uma imagem que contém mais de uma cópia de uma imagem em resoluções diferentes.

O Windows GDI+ pode dar suporte a um número arbitrário de páginas (ou imagens ou quadros), bem como a um número arbitrário de resoluções.

Exemplos

O aplicativo de console a seguir cria um objeto Image com base em um arquivo TIFF. O código chama o método Image::GetFrameDimensionsCount para descobrir quantas dimensões de quadro o objeto Image tem. Cada uma dessas dimensões de quadro é identificada por um GUID e a chamada para GetFrameDimensionsList recupera esses GUIDs. O primeiro GUID está no índice 0 na matriz pDimensionIDs . A chamada para o método Image::GetFrameCount determina o número de quadros na dimensão identificada pelo primeiro 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;
}

O código anterior, juntamente com um arquivo específico, Multiframe.tif, produziu a seguinte saída:

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.

Você pode pesquisar o GUID exibido em Gdiplusimaging.h e ver que ele é o identificador da dimensão de página. Portanto, a saída do programa nos informa que o arquivo Multiframe.tif tem quatro páginas; ou seja, quatro quadros na dimensão da página.

Requisitos

   
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdiplusheaders.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Copiando quadros individuais de uma imagem Multiple-Frame

Criar e salvar uma imagem de vários quadros

Encoderparameter

Imagem

Image::GetFrameCount

Image::GetFrameDimensionsCount

Métodos Image::SaveAdd