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 개체는 기본, 비트맵, 브러시, 펜 및 텍스트의 다섯 가지 조정 범주에 대한 색 및 회색조 설정을 유지합니다. 예를 들어 기본 범주의 색 키, 비트맵 범주의 다른 색 키, 펜 범주에 대해 다른 색 키를 지정할 수 있습니다.
기본 색 및 회색조 조정 설정은 자체 조정 설정이 없는 모든 범주에 적용됩니다. 예를 들어 펜 범주에 대한 조정 설정을 지정하지 않으면 기본 설정이 펜 범주에 적용됩니다.
특정 범주에 대한 색 또는 회색조 조정 설정을 지정하는 즉시 기본 조정 설정이 해당 범주에 더 이상 적용되지 않습니다. 예를 들어 기본 범주에 대한 조정 설정 컬렉션을 지정한다고 가정합니다. 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 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |
추가 정보
ImageAttributes::ClearColorKey