다음을 통해 공유


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 개체에 대한 참조입니다.

[in, ref] colorHigh

형식: const

높은 색 키 값을 지정하는 Color 개체에 대한 참조입니다.

[in, optional] type

형식: ColorAdjustType

색 키가 설정된 범주를 지정하는 ColorAdjustType 열거형의 요소입니다. 기본값은 ColorAdjustTypeDefault입니다.

반환 값

형식: 상태

메서드가 성공하면 Status 열거형의 요소인 확인을 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

이 메서드는 색 범위를 투명하게 만들 수 있도록 높음 및 낮은 색 키 값을 설정합니다. 상위 및 하위 색 키의 해당 구성 요소 간에 세 가지 구성 요소(빨간색, 녹색, 파랑)가 있는 모든 색은 투명하게 만들어집니다.

ImageAttributes 개체는 기본, 비트맵, 브러시, 펜 및 텍스트의 다섯 가지 조정 범주에 대한 색 및 회색조 설정을 유지합니다. 예를 들어 기본 범주의 색 키, 비트맵 범주의 다른 색 키, 펜 범주에 대해 다른 색 키를 지정할 수 있습니다.

기본 색 및 회색조 조정 설정은 자체 조정 설정이 없는 모든 범주에 적용됩니다. 예를 들어 펜 범주에 대한 조정 설정을 지정하지 않으면 기본 설정이 펜 범주에 적용됩니다.

특정 범주에 대한 색 또는 회색조 조정 설정을 지정하는 즉시 기본 조정 설정이 해당 범주에 더 이상 적용되지 않습니다. 예를 들어 기본 범주에 대한 조정 설정 컬렉션을 지정한다고 가정합니다. ColorAdjustTypePenImageAttributes::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 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

추가 정보

Bitmap

색상

ColorAdjustType

이미지

ImageAttributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetThreshold

Metafile

다시 칠하기