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 对象: inputBitmap 和 outputBitmap。 首先, inputBitmap 是从 BMP 文件构造的。 然后,通过将 inputBitmap 的地址传递到 Bitmap::ApplyEffect 方法来创建 outputBitmap。 Bitmap::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 |