SetICMMode 함수(wingdi.h)
SetICMMode 함수를 사용하면 지정된 DC(디바이스 컨텍스트)에서 이미지 색 관리를 사용하거나 사용하지 않도록 설정하거나 쿼리할 수 있습니다.
구문
int SetICMMode(
HDC hdc,
int mode
);
매개 변수
hdc
디바이스 컨텍스트에 대한 핸들을 식별합니다.
mode
이미지 색 관리를 켜고 끕니다. 이 매개 변수는 다음 상수 값 중 하나를 사용할 수 있습니다.
반환 값
이 함수가 성공하면 반환 값은 0이 아닌 값입니다.
이 함수가 실패하면 반환 값은 0입니다.
ICM_QUERY 지정되고 함수가 성공하면 반환되는 0이 아닌 값은 현재 모드를 나타내기 위해 ICM_ON 또는 ICM_OFF.
설명
시스템에서 디바이스 상태와 일치하는 ICC 색 프로필을 찾을 수 없는 경우 SetICMMode 가 실패하고 0을 반환합니다.
디바이스 컨텍스트(DC)에 대해 WCS를 사용하도록 설정하면 대부분의 Win32 API 함수를 사용하여 DC로 전달되는 색이 일치합니다. 주요 예외는 BitBlt 및 StretchBlt입니다. 한 DC에서 다른 DC로 비트 블록 전송(blit)을 수행할 때 두 DC는 이미 호환되며 색을 수정할 필요가 없다고 가정합니다. 그렇지 않은 경우 색 보정이 수행될 수 있습니다. 특히 디바이스 DIB(독립 비트맵)가 블릿의 원본으로 사용되고 블릿이 WCS를 사용하도록 설정된 DC로 수행되는 경우 색 일치가 수행됩니다. 원하는 것이 아닌 경우 BitBlt 또는 StretchBlt를 호출하기 전에 SetICMMode를 호출하여 대상 DC에 대해 WCS를 해제합니다.
CreateCompatibleDC 함수를 사용하여 DC에서 비트맵을 만드는 경우 비트맵을 만들 때 한 번, 블릿이 수행될 때 한 번, 두 번 일치시킬 수 있습니다. 그 이유는 CreateCompatibleDC 함수에서 만든 DC의 비트맵이 원본 DC의 현재 브러시, 펜 및 팔레트를 획득하기 때문입니다. 그러나 WCS는 새 DC에 대해 기본적으로 사용하지 않도록 설정됩니다. 나중에 SetICMMode 함수를 사용하여 새 DC에 대해 WCS를 사용하도록 설정하면 색 수정이 수행됩니다. CreateCompatibleDC 함수를 사용하여 이중 색 수정을 방지하려면 CreateCompatibleDC 함수가 호출되기 전에 SetICMMode 함수를 사용하여 원본 DC에 대해 WCS를 해제합니다.
프린터의 DC에서 호환되는 DC를 만들 때( CreateCompatibleDC 참조) 기본값은 프린터의 DC에 대해 사용하도록 설정된 경우 항상 색 일치를 수행하는 것입니다. 프린터의 기본 색 프로필은 SetDIBitsToDevice 또는 StretchDIBits를 사용하여 프린터의 DC에 블릿이 수행될 때 사용됩니다. 원하는 것이 아닌 경우 SetDIBitsToDevice 또는 StretchDIBits를 호출하기 전에 SetICMMode를 호출하여 프린터의 DC에 대해 WCS를 해제합니다.
또한 WCS가 켜져 있는 프린터의 DC에 인쇄할 때 WCS를 다시 켜려면 StartPage 함수를 호출할 때마다 SetICMMode 함수를 호출해야 합니다. StartPage 함수는 RestoreDC 및 SaveDC 함수를 호출하므로 프린터 DC에 대해 WCS가 꺼집니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wingdi.h |
라이브러리 | Gdi32.lib |
DLL | Gdi32.dll |