Image::GetPropertySize メソッド (gdiplusheaders.h)
Image::GetPropertySize メソッドは、この Image オブジェクトに格納されているすべてのプロパティ項目の合計サイズをバイト単位で取得します。 Image::GetPropertySize メソッドは、この Image オブジェクトに格納されているプロパティ項目の数も取得します。
構文
Status GetPropertySize(
[out] UINT *totalBufferSize,
[out] UINT *numProperties
);
パラメーター
[out] totalBufferSize
種類: UINT*
すべてのプロパティ項目の合計サイズ (バイト単位) を受け取る UINT へのポインター。
[out] numProperties
種類: UINT*
プロパティ項目の数を受け取る UINT へのポインター。
戻り値
種類: 状態
メソッドが成功した場合は、 Status 列挙の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
Windows GDI+ は、 PropertyItem オブジェクトに個々のメタデータを格納します。 Image::GetAllPropertyItems メソッドは PropertyItem オブジェクトの配列を返します。 Image::GetAllPropertyItems を呼び出す前に、その配列を受け取るのに十分な大きさのバッファーを割り当てる必要があります。 Image オブジェクトの Image::GetPropertySize メソッドを呼び出して、必要なバッファーのサイズをバイト単位で取得できます。 Image::GetPropertySize メソッドは、画像内のプロパティ (メタデータの一部) の数も提供します。
例
次の例では、JPEG ファイルに基づいて Image オブジェクトを作成します。 このコードは、その Image オブジェクトの Image::GetAllPropertyItems メソッドを呼び出して、そのプロパティ項目 (メタデータ) を取得します。
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
INT main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
// Create an Image object based on a JPEG file.
Image* image = new Image(L"FakePhoto.jpg");
// Find out how many property items are in the image, and find out the
// required size of the buffer that will receive those property items.
UINT totalBufferSize;
UINT numProperties;
image->GetPropertySize(&totalBufferSize, &numProperties);
// Allocate the buffer that will receive the property items.
PropertyItem* pAllItems = (PropertyItem*)malloc(totalBufferSize);
// Fill the buffer.
image->GetAllPropertyItems(totalBufferSize, numProperties, pAllItems);
// Print the ID of each property item.
for(UINT j = 0; j < numProperties; ++j)
{
printf("%x\n", pAllItems[j].id);
}
free(pAllItems);
delete image;
GdiplusShutdown(gdiplusToken);
return 0;
}
上記のコードは、特定のファイルと共に FakePhoto.jpg、次の出力を生成しました。
320
10f
110
9003
829a
5090
5091
上記の出力は、各プロパティ識別子の 16 進数の値を示しています。 Gdiplusimaging.h でこれらの数値を調べて、次のプロパティ タグを表していることを確認できます。
16 進数値 | プロパティ タグ |
---|---|
0x0320 | PropertyTagImageTitle |
0x010f | PropertyTagEquipMake |
0x0110 | PropertyTagEquipModel |
0x9003 | PropertyTagExifDTOriginal |
0x829a | PropertyTagExifExposureTime |
0x5090 | PropertyTagLuminanceTable |
0x5091 | PropertyTagChrominanceTable |
要件
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | gdiplusheaders.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |