Método Image::GetFrameDimensionsList (gdiplusheaders.h)
El método Image::GetFrameDimensionsList obtiene los identificadores de las dimensiones de marco de este objeto Image .
Sintaxis
Status GetFrameDimensionsList(
[out] GUID *dimensionIDs,
[in] UINT count
);
Parámetros
[out] dimensionIDs
Tipo: GUID*
Puntero a una matriz que recibe los identificadores. Los GUID que identifican varias dimensiones se definen en Gdiplusimaging.h.
[in] count
Tipo: UINT
Entero que especifica el número de elementos de la matriz dimensionIDs . Llame al método Image::GetFrameDimensionsCount para determinar este número.
Valor devuelto
Tipo: Estado
Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .
Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .
Comentarios
Este método devuelve información sobre imágenes de varios fotogramas, que vienen en dos estilos: varias páginas y varias resoluciones.
Una imagen de varias páginas es una imagen que contiene más de una imagen. Cada página contiene una sola imagen (o marco). Estas páginas (o imágenes o fotogramas) se muestran normalmente en sucesión para generar una secuencia animada, como en un archivo GIF animado.
Una imagen de resolución múltiple es una imagen que contiene más de una copia de una imagen en resoluciones diferentes.
GDI+ de Windows puede admitir un número arbitrario de páginas (o imágenes o marcos), así como un número arbitrario de resoluciones.
Ejemplos
La siguiente aplicación de consola crea un objeto Image basado en un archivo TIFF. El código llama al método Image::GetFrameDimensionsCount para averiguar cuántas dimensiones de marco tiene el objeto Image . Cada una de esas dimensiones de marco se identifica mediante un GUID y la llamada a GetFrameDimensionsList recupera esos GUID. El primer GUID se encuentra en el índice 0 de la matriz pDimensionIDs . La llamada al método Image::GetFrameCount determina el número de fotogramas de la dimensión identificada por el primer 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;
}
El código anterior, junto con un archivo determinado, Multiframe.tif, generó la siguiente salida:
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.
Puede buscar el GUID mostrado en Gdiplusimaging.h y ver que es el identificador de la dimensión de página. Por lo tanto, la salida del programa nos indica que el archivo Multiframe.tif tiene cuatro páginas; es decir, cuatro fotogramas de la dimensión de página.
Requisitos
Cliente mínimo compatible | Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | gdiplusheaders.h (include Gdiplus.h) |
Library | Gdiplus.lib |
Archivo DLL | Gdiplus.dll |
Consulte también
Copiar fotogramas individuales desde una imagen de Multiple-Frame
Creación y almacenamiento de una imagen de trama múltiple