次の方法で共有


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 列挙体の要素である Ok を返します。

メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。

解説

このメソッドは、複数のページと複数の解像度の 2 つのスタイルで提供される複数フレームイメージに関する情報を返します。

複数ページのイメージは、複数のイメージを含むイメージです。 各ページには、1 つの画像 (またはフレーム) が含まれています。 通常、これらのページ (または画像、フレーム) は、アニメーション GIF ファイルなどのアニメーションシーケンスを生成するために連続して表示されます。

複数解像度イメージは、異なる解像度のイメージの複数のコピーを含むイメージです。

Windows GDI+ では、任意の数のページ (またはイメージ、またはフレーム) と、任意の数の解像度をサポートできます。

次のコンソール アプリケーションは、TIFF ファイルに基づいて Image オブジェクトを作成します。 このコードでは 、Image::GetFrameDimensionsCount メソッドを呼び出して、 Image オブジェクトのフレーム ディメンションの数を確認します。 これらの各フレーム ディメンションは GUID によって識別され、 GetFrameDimensionsList の呼び出しはこれらの GUID を取得します。 最初の GUID は 、pDimensionIDs 配列のインデックス 0 にあります。 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.

Gdiplusimaging.h で表示されている GUID を検索し、それがページ ディメンションの識別子であることを確認できます。 したがって、プログラムの出力は、Multiframe.tif ファイルに 4 つのページがあることを示します。つまり、ページ ディメンションの 4 つのフレームです。

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdiplusheaders.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

関連項目

Multiple-Frame イメージから個々のフレームをコピーする

複数フレーム画像の作成と保存

EncoderParameter

イメージ

Image::GetFrameCount

Image::GetFrameDimensionsCount

Image::SaveAdd メソッド