ImageAttributes::SetThreshold 方法 (gdiplusimageattributes.h)
ImageAttributes::SetThreshold 方法设置指定类别 (透明度范围) 阈值。
语法
Status SetThreshold(
[in] REAL threshold,
[in, optional] ColorAdjustType type
);
parameters
[in] threshold
类型: REAL
指定阈值的实数。
[in, optional] type
类型: ColorAdjustType
ColorAdjustType 枚举的元素,该元素指定为其设置颜色阈值的类别。 默认值为 ColorAdjustTypeDefault。
返回值
类型: 状态
如果该方法成功,则返回 Ok,这是 Status 枚举的元素。
如果方法失败,它将返回 Status 枚举的其他元素之一。
注解
阈值是一个介于 0 到 1 之间的值,该值指定每个颜色分量的截止点。 例如,假设阈值设置为 0.7,并假设要呈现其红色、绿色和蓝色分量为 230、50 和 220 的颜色。 红色分量 230 大于 0.7×255,因此红色分量将更改为 255 (完整强度) 。 绿色分量 50 小于 0.7×255,因此绿色分量将更改为 0。 蓝色分量 220 大于 0.7×255,因此蓝色分量将更改为 255。
ImageAttributes 对象维护五个调整类别的颜色和灰度设置:默认、位图、画笔、笔和文本。 例如,可以为默认类别指定阈值,为位图类别指定阈值,并为笔类别指定其他阈值。
默认的颜色和灰度调整设置适用于没有自己调整设置的所有类别。 例如,如果从未为笔类别指定任何调整设置,则默认设置适用于笔类别。
为特定类别指定颜色或灰度调整设置后,默认调整设置将不再应用于该类别。 例如,假设为默认类别指定调整设置的集合。 如果通过将 ColorAdjustTypePen 传递给 ImageAttributes::SetThreshold 方法设置笔类别的阈值,则默认调整设置都不会应用于笔。
示例
以下示例基于 .bmp 文件创建 Image 对象。 该代码还会创建 ImageAttributes 对象,并将其位图阈值设置为 0.6。 然后,代码绘制图像两次:一次不调整颜色,一次使用阈值指定的调整。
VOID Example_SetThreshold(HDC hdc)
{
Graphics graphics(hdc);
// Create an Image object based on a .bmp file.
// The image has one stripe with RGB components (160, 0, 0)
// and one stripe with RGB components (0, 140, 0).
Image image(L"RedGreenThreshold.bmp");
// Create an ImageAttributes object, and set its bitmap threshold to 0.6.
ImageAttributes imAtt;
imAtt.SetThreshold(0.6f, ColorAdjustTypeBitmap);
// Draw the image with no color adjustment.
graphics.DrawImage(&image, 10, 10, image.GetWidth(), image.GetHeight());
// Draw the image with the threshold applied.
// 160 > 0.6*255, so the red stripe will be changed to full intensity.
// 140 < 0.6*255, so the green stripe will be changed to zero intensity.
graphics.DrawImage(&image,
Rect(100, 10, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
}
下图显示了上述代码的输出。 请注意,红色已转换为最大强度,绿色已转换为零强度。
要求
最低受支持的客户端 | Windows XP、Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | gdiplusimageattributes.h (包括 Gdiplus.h) |
Library | Gdiplus.lib |
DLL | Gdiplus.dll |
另请参阅
ImageAttributes::ClearColorKey