다음을 통해 공유


ImageAttributes::SetOutputChannel 메서드(gdiplusimageattributes.h)

ImageAttributes::SetOutputChannel 메서드는 지정된 범주에 대한 CMYK 출력 채널을 설정합니다.

구문

Status SetOutputChannel(
  [in]           ColorChannelFlags channelFlags,
  [in, optional] ColorAdjustType   type
);

매개 변수

[in] channelFlags

형식: ColorChannelFlags

출력 채널을 지정하는 ColorChannelFlags 열거형의 요소입니다.

[in, optional] type

형식: ColorAdjustType

출력 채널이 설정된 범주를 지정하는 ColorAdjustType 열거형의 요소입니다. 기본값은 ColorAdjustTypeDefault입니다.

반환 값

형식: 상태

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

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

설명

ImageAttributes::SetOutputChannel 메서드를 사용하여 이미지를 CYAN-magenta-yellow-black(CMYK) 색 공간으로 변환하고 CMYK 색 채널 중 하나의 강도를 검사할 수 있습니다. 예를 들어 ImageAttributes 개체를 만들고 비트맵 출력 채널을 ColorChannelFlagsC로 설정한다고 가정합니다. 해당 ImageAttributes 개체의 주소를 DrawImage 메서드에 전달하면 각 픽셀의 시안 구성 요소가 계산되고 렌더링된 이미지의 각 픽셀은 시안 채널의 강도를 나타내는 회색 음영입니다. 마찬가지로 자홍색, 노란색 및 검은색 채널의 강도를 나타내는 이미지를 렌더링할 수 있습니다.

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

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

특정 범주에 대한 색 또는 회색조 조정 설정을 지정하는 즉시 기본 조정 설정이 해당 범주에 더 이상 적용되지 않습니다. 예를 들어 기본 범주에 대한 조정 설정 컬렉션을 지정한다고 가정합니다. ColorAdjustTypeBitmapImageAttributes::SetOutputChannel 메서드에 전달하여 비트맵 범주에 대한 출력 채널을 설정하는 경우 비트맵에 기본 조정 설정이 적용되지 않습니다.

예제

다음 예제에서는 Image 개체를 만들고 DrawImage 메서드를 호출하여 이미지를 그립니다. 그런 다음, 코드는 ImageAttributes 개체를 만들고 비트맵 출력 채널을 cyan(ColorChannelFlagsC)으로 설정합니다. 이 코드는 DrawImage를 두 번째로 호출하여 Image 개체의 주소와 ImageAttributes 개체의 주소를 전달합니다. 각 픽셀의 시안 채널이 계산되고 렌더링된 이미지는 시안 채널의 강도를 회색 음영으로 표시합니다. 코드는 DrawImage 를 세 번 더 호출하여 마젠타, 노란색 및 검은색 채널의 강도를 표시합니다.


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

   Image image(L"Mosaic2.bmp");

   // Draw the image unaltered.
   graphics.DrawImage(&image, 10, 10, width, height);

   UINT width = image.GetWidth();
   UINT height = image.GetHeight();

   ImageAttributes imAtt;

   // Draw the image, showing the intensity of the cyan channel.
   imAtt.SetOutputChannel(ColorChannelFlagsC, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the magenta channel.
   imAtt.SetOutputChannel(ColorChannelFlagsM, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(210, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the yellow channel.
   imAtt.SetOutputChannel(ColorChannelFlagsY, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(10, 110, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the black channel.
   imAtt.SetOutputChannel(ColorChannelFlagsK, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 110, width, height),  // dest rect
      0, 0, width, height,            // source rect
      UnitPixel,
      &imAtt); 
}
				

다음 그림에서는 이전 코드의 출력을 보여 줍니다.

한 이미지의 5가지 버전을 보여 주는 일러스트레이션: 첫 번째 색상, 회색조의 네 가지 패턴

요구 사항

   
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 gdiplusimageattributes.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

참고 항목

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile