Condividi tramite


Metodo Image::GetFrameDimensionsList (gdiplusheaders.h)

Il metodo Image::GetFrameDimensionsList ottiene gli identificatori per le dimensioni del frame di questo oggetto Image .

Sintassi

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

Parametri

[out] dimensionIDs

Tipo: GUID*

Puntatore a una matrice che riceve gli identificatori. I GUID che identificano varie dimensioni sono definiti in Gdiplusimaging.h.

[in] count

Tipo: UINT

Intero che specifica il numero di elementi nella matrice dimensionIDs . Chiamare il metodo Image::GetFrameDimensionsCount per determinare questo numero.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, che è un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Questo metodo restituisce informazioni sulle immagini a più fotogrammi, disponibili in due stili: più pagine e più risoluzioni.

Un'immagine a più pagine è un'immagine che contiene più immagini. Ogni pagina contiene una singola immagine (o cornice). Queste pagine (o immagini o fotogrammi) vengono in genere visualizzate in successione per produrre una sequenza animata, ad esempio in un file GIF animato.

Un'immagine a risoluzione multipla è un'immagine che contiene più copie di un'immagine con risoluzioni diverse.

Windows GDI+ può supportare un numero arbitrario di pagine (o immagini o fotogrammi), nonché un numero arbitrario di risoluzioni.

Esempio

L'applicazione console seguente crea un oggetto Image basato su un file TIFF. Il codice chiama il metodo Image::GetFrameDimensionsCount per individuare il numero di dimensioni del frame di cui dispone l'oggetto Image . Ognuna di queste dimensioni del frame è identificata da un GUID e la chiamata a GetFrameDimensionsList recupera tali GUID. Il primo GUID è in corrispondenza dell'indice 0 nella matrice pDimensionIDs . La chiamata al metodo Image::GetFrameCount determina il numero di fotogrammi nella dimensione identificata dal primo 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;
}

Il codice precedente, insieme a un file specifico, Multiframe.tif, ha prodotto l'output seguente:

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.

È possibile cercare il GUID visualizzato in Gdiplusimaging.h e verificare che sia l'identificatore per la dimensione della pagina. L'output del programma indica quindi che il file Multiframe.tif ha quattro pagine; ovvero quattro fotogrammi nella dimensione della pagina.

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusheaders.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Copia di singoli fotogrammi da un'immagine Multiple-Frame

Creazione e salvataggio di un'immagine a più frame

Encoderparameter

Immagine

Image::GetFrameCount

Image::GetFrameDimensionsCount

Metodi Image::SaveAdd