Bitmap::ApplyEffect(Bitmap**,INT,Effect*,RECT*,RECT*,Bitmap**) メソッド (gdiplusheaders.h)
Bitmap::ApplyEffect メソッドは、指定した効果を既存の Bitmap オブジェクトに適用することで、新しい Bitmap オブジェクトを作成します。
構文
Status ApplyEffect(
[in] Bitmap **inputs,
[in] INT numInputs,
[in] Effect *effect,
[in] RECT *ROI,
[out] RECT *outputRect,
[out] Bitmap **output
);
パラメーター
[in] inputs
種類: ビットマップ**
効果が適用される Bitmap オブジェクトへのポインターのアドレス。
[in] numInputs
型: INT
入力ビットマップの数を指定する整数。 このパラメーターは 1 に設定する必要があります。
[in] effect
種類: 効果*
Effect クラスの子孫のインスタンスへのポインター。 子孫 ( Blur オブジェクトなど ) は、適用される効果を指定します。
[in] ROI
種類: RECT*
使用される入力ビットマップの部分を指定する RECT 構造体へのポインター。
[out] outputRect
種類: RECT*
使用された入力ビットマップの部分を受け取る RECT 構造体へのポインター。 ROI で指定された四角形が完全に入力ビットマップ内にある場合、outputRect で返される四角形は ROI と同じです。 ROI で指定された四角形の一部が入力ビットマップの外側にある場合、outputRect で返される四角形は、入力ビットマップ内にある ROI の部分です。 出力四角形を受け取らない場合は NULL を 渡します。
[out] output
種類: ビットマップ**
新しい Bitmap オブジェクトへのポインターを受け取る変数のアドレス。
戻り値
種類: 状態
メソッドが成功した場合は、Status 列挙体の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
Bitmap::ApplyEffect は、新しい Bitmap オブジェクトへのポインターを返します。 その Bitmap オブジェクトの使用が完了したら、 delete を呼び出して、占有しているメモリを解放します。
例
次の例では、inputBitmap と outputBitmap という 2 つの Bitmap オブジェクトを作成します。 まず、 inputBitmap は BMP ファイルから構築されます。 次に、inputBitmap のアドレスを Bitmap::ApplyEffect メソッドに渡すことによって outputBitmap が作成されます。 Bitmap::ApplyEffect は、rectOfInterest で指定された inputBitmap の部分を受け取り、BrightnessContrast オブジェクトである briCon で指定されているコントラストを増やします。
VOID Example_BrightnessContrastApplyEffect2(HDC hdc)
{
Graphics graphics(hdc);
Bitmap* inputBitmap = new Bitmap(L"Picture.bmp");
Bitmap* outputBitmap = NULL;
RECT rectOfInterest = {10, 12, 100, 80};
BrightnessContrastParams briConParams;
briConParams.brightnessLevel = 0;
briConParams.contrastLevel = 25;
BrightnessContrast briCon;
briCon.SetParameters(&briConParams);
// Draw the original image.
graphics.DrawImage(inputBitmap, 20, 20);
// Apply the change in contrast.
Bitmap::ApplyEffect(
&inputBitmap, 1, &briCon, &rectOfInterest, NULL, &outputBitmap);
// Draw the new image.
graphics.DrawImage(outputBitmap, 200, 20);
delete inputBitmap;
delete outputBitmap;
}
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | gdiplusheaders.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |