次の方法で共有


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

関連項目

Bitmap

Bitmap::ApplyEffect メソッド