ImageAttributes::SetColorKey 方法 (gdiplusimageattributes.h)

ImageAttributes::SetColorKey 方法 (指定类别的透明度范围) 设置颜色键。

语法

Status SetColorKey(
  [in, ref]      const Color &   colorLow,
  [in, ref]      const Color &   colorHigh,
  [in, optional] ColorAdjustType type
);

参数

[in, ref] colorLow

类型: const Color

对指定低颜色键值的 Color 对象的引用。

[in, ref] colorHigh

类型: const Color

对指定高 颜色 键值的 Color 对象的引用。

[in, optional] type

类型: ColorAdjustType

ColorAdjustType 枚举的元素,该元素指定要为其设置颜色键的类别。 默认值为 ColorAdjustTypeDefault

返回值

类型: 状态

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

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

注解

此方法设置高颜色键值和低颜色键值,以便一系列颜色可以透明。 其三个分量 (红色、绿色、蓝色) 的相应颜色和低色键之间的任何颜色都透明。

ImageAttributes 对象维护五个调整类别的颜色和灰度设置:默认、位图、画笔、笔和文本。 例如,可以为默认类别指定颜色键,为位图类别指定不同的颜色键,为笔类别指定不同的颜色键。

默认颜色和灰度调整设置适用于没有自己调整设置的所有类别。 例如,如果从未为笔类别指定任何调整设置,则默认设置将应用于笔类别。

为特定类别指定颜色或灰度调整设置后,默认调整设置将不再应用于该类别。 例如,假设为默认类别指定调整设置的集合。 如果通过将 ColorAdjustTypePen 传递到 ImageAttributes::SetColorKey 方法来设置笔类别的颜色键,则任何默认调整设置都不会应用于笔。

示例

以下示例从 .bmp 文件创建 Image 对象。 该代码还会创建 ImageAttributes 对象。 调用 ImageAttributes::SetColorKey 设置 ImageAttributes 对象的位图颜色键,以便满足以下所有三个条件的任何颜色都透明:

  • 红色分量的范围是 100 到 250。
  • 绿色分量的范围是 95 到 245。
  • 蓝色分量的范围是 30 到 60。

VOID Example_SetColorKey(HDC hdc)
{
   Graphics graphics(hdc);

   // Create an Image object based on a BMP file.
   // The image has three horizontal stripes.
   // The color of the top stripe has RGB components (90, 90, 20).
   // The color of the middle stripe has RGB components (150, 150, 150).
   // The color of the bottom stripe has RGB components (130, 130, 40).
   Image image(L"ColorKeyTest.bmp");

   // Create an ImageAttributes object, and set its color key.
   ImageAttributes imAtt;
   imAtt.SetColorKey(
      Color(100, 95, 30),
      Color(250, 245, 60),
      ColorAdjustTypeBitmap);

   // Draw the image. Apply the color key.
   // The bottom stripe of the image will be transparent because
   // 100 <= 130 <= 250 and
   // 95  <= 130 <= 245 and
   // 30  <= 40  <= 60.
   graphics.DrawImage(
      &image, 
      Rect(20, 20, 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

另请参阅

Bitmap

颜色

ColorAdjustType

图像

ImageAttributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetThreshold

Metafile

重新着色