Bitmap::ApplyEffect (Bitmap**,INT,Effect*,RECT*,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
);

parameters

[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 对象的指针的变量的地址。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

注解

Bitmap::ApplyEffect 返回指向新 Bitmap 对象的指针。 使用该 Bitmap 对象后,调用 delete 以释放它占用的内存。

示例

以下示例创建两个 Bitmap 对象: inputBitmapoutputBitmap。 首先, inputBitmap 是从 BMP 文件构造的。 然后,通过将 inputBitmap 的地址传递到 Bitmap::ApplyEffect 方法来创建 outputBitmapBitmap::ApplyEffect 采用由 rectOfInterest 指定的 inputBitmap 部分,并增加 briCon一个 BrightnessContrast 对象)指定的对比度。

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 方法