ImageAttributes::SetOutputChannelColorProfile 메서드(gdiplusimageattributes.h)
ImageAttributes::SetOutputChannelColorProfile 메서드는 지정된 범주에 대한 출력 채널 색 프로필 파일을 설정합니다.
구문
Status SetOutputChannelColorProfile(
[in] const WCHAR *colorProfileFilename,
[in, optional] ColorAdjustType type
);
매개 변수
[in] colorProfileFilename
형식: const WCHAR*
색 프로필 파일의 경로 이름입니다. 색 프로필 파일이 %SystemRoot%\System32\Spool\Drivers\Color 디렉터리에 있는 경우 이 매개 변수는 파일 이름이 될 수 있습니다. 그렇지 않으면 이 매개 변수는 정규화된 경로 이름이어야 합니다.
[in, optional] type
형식: ColorAdjustType
출력 채널 색 프로필 파일이 설정된 범주를 지정하는 ColorAdjustType 열거형의 요소입니다. 기본값은 ColorAdjustTypeDefault입니다.
반환 값
형식: 상태
메서드가 성공하면 Status 열거형의 요소인 확인을 반환합니다.
메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.
설명
ImageAttributes::SetOutputChannel 및 ImageAttributes::SetOutputChannelColorProfile 메서드를 사용하여 이미지를 CYAN-magenta-yellow-black(CMYK) 색 공간으로 변환하고 CMYK 색 채널 중 하나의 강도를 검사할 수 있습니다. 예를 들어 다음 단계를 수행하는 코드를 작성한다고 가정합니다.
- Image 개체를 만듭니다.
- ImageAttributes 개체를 만듭니다.
- ImageAttributes 개체의 ImageAttributes::SetOutputChannel 메서드에 ColorChannelFlagsC를 전달합니다.
- ImageAttributes 개체의 ImageAttributes::SetOutputChannelColorProfile 메서드에 색 프로필 파일의 경로 이름을 전달합니다.
- Image 및ImageAttributes 개체의 주소를 DrawImage 메서드에 전달합니다.
ImageAttributes 개체는 기본, 비트맵, 브러시, 펜 및 텍스트의 다섯 가지 조정 범주에 대한 색 및 회색조 설정을 유지합니다. 예를 들어 기본 범주에 대한 출력 채널 색 프로필 파일과 비트맵 범주에 대해 다른 출력 채널 색 프로필 파일을 지정할 수 있습니다.
기본 색 및 회색조 조정 설정은 자체 조정 설정이 없는 모든 범주에 적용됩니다. 예를 들어 비트맵 범주에 대한 조정 설정을 지정하지 않으면 기본 설정이 비트맵 범주에 적용됩니다.
특정 범주에 대한 색 또는 회색조 조정 설정을 지정하는 즉시 기본 조정 설정이 해당 범주에 더 이상 적용되지 않습니다. 예를 들어 기본 범주에 대한 조정 설정 컬렉션을 지정한다고 가정합니다. ColorAdjustTypeBitmap을 ImageAttributes::SetOutputChannelColorProfile 메서드에 전달하여 비트맵 범주에 대한 출력 채널 색 프로필 파일을 설정하는 경우 비트맵에 기본 조정 설정이 적용되지 않습니다.
예제
다음 예제에서는 Image 개체를 만들고 DrawImage 메서드를 호출하여 이미지를 그립니다. 그런 다음, 코드는 ImageAttributes 개체를 만들고 ImageAttributes::SetOutputChannelColorProfile 메서드를 호출하여 비트맵 범주에 대한 프로필 파일을 지정합니다. ImageAttributes::SetOutputChannel에 대한 호출은 출력 채널(비트맵 범주의 경우)을 cyan으로 설정합니다. 이 코드는 DrawImage를 두 번째로 호출하여 Image 개체의 주소와 ImageAttributes 개체의 주소를 전달합니다. 각 픽셀의 시안 채널이 계산되고 렌더링된 이미지는 시안 채널의 강도를 회색 음영으로 표시합니다. 코드는 DrawImage 를 세 번 더 호출하여 마젠타, 노란색 및 검은색 채널의 강도를 표시합니다.
VOID Example_SetOutputProfile(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"Mosaic2.bmp");
ImageAttributes imAtt;
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// Draw the image unaltered.
graphics.DrawImage(&image, 10, 10, width, height);
imAtt.SetOutputChannelColorProfile(
L"TEKPH600.ICM", ColorAdjustTypeBitmap);
// 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);
}
위의 코드는 Mosaic2.bmp 및 Tekph600.icm 파일과 함께 다음 출력을 생성했습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP, Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | gdiplusimageattributes.h(Gdiplus.h 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |
추가 정보
ImageAttributes::ClearOutputChannel