次の方法で共有


Effect::GetAuxData メソッド (gdipluseffects.h)

Effect::GetAuxData は、Bitmap::ApplyEffect メソッドの以前の呼び出しによって作成された一連の参照テーブルへのポインターを取得します。

構文

VOID * GetAuxData();

戻り値

このメソッドは、 Bitmap::ApplyEffect の以前の呼び出しによって作成された一連の参照テーブルへのポインターを返します。 参照テーブルが使用できない場合、戻り値は NULL になります

解説

効果をビットマップに適用するには、 Effect クラスのいずれかの子孫のインスタンスを作成し、その子孫のアドレスを Bitmap::ApplyEffect メソッドに渡します。 Effect の特定の子孫の場合、ApplyEffect は参照テーブルを作成し、それらのテーブルのアドレスを子孫オブジェクトに返します。 たとえば、 BrightnessContrast オブジェクトの参照テーブルを次のように取得できます。

  1. BrightnessContrast オブジェクトを作成し、その SetParameters メソッドを呼び出します。
  2. BrightnessContrast オブジェクトの Effect::UseAuxData メソッドに TRUE を渡します。
  3. BrightnessContrast オブジェクトのアドレスを Bitmap::ApplyEffect メソッドに渡します。
  4. BrightnessContrast オブジェクトの Effect::GetAuxData メソッドを呼び出して、ApplyEffect によって作成された参照テーブルへのポインターを取得します。 参照テーブルのバッファーは、ApplyEffect によって割り当てられます。バッファーを解放する責任はありません。

ApplyEffect は、 Effect クラスの次の子孫の参照テーブルのアドレスを返すことができます。

上の一覧のクラスに対して、 ApplyEffect は 4 つの参照テーブルを作成します。1 つは、それぞれ青、緑、赤、アルファ チャネル用です。 各参照テーブルは 256 バイトの配列であるため、テーブルのセット全体のサイズは 1024 バイトです。 テーブルは、青、緑、赤、アルファの順に格納されます。

次のコードは、 BrightnessContrast オブジェクトのアドレスを Bitmap::ApplyEffect メソッドに渡します。 次に、ApplyEffect によって作成された青チャネル参照テーブルが出力されます。

Bitmap bm(L"Picture.bmp");

BrightnessContrastParams briConParams;
briConParams.brightnessLevel = 0;
briConParams.contrastLevel = 25;

BrightnessContrast briCon;
briCon.SetParameters(&briConParams);
briCon.UseAuxData(TRUE);
	
bm.ApplyEffect(&briCon, NULL);

VOID* data = briCon.GetAuxData();

// You know the size is 1024, but check to make sure.
INT size = briCon.GetAuxDataSize();

if(1024 != size || NULL == data)
   return;

// Cast the data pointer as a ColorLUTParams pointer so that it
// will be easy to examine the individual tables.
ColorLUTParams* tables = (ColorLUTParams*)data;
   
// Print the lookup table for the blue channel.
for(UINT j = 0; j < 256; ++j)
{
   printf("%u, %u\n", j, tables->lutB[j]);
}

要件

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

関連項目

ColorLUTParams

効果

Effect::GetAuxDataSize

Effect::UseAuxData