SetICMMode 함수(wingdi.h)

SetICMMode 함수를 사용하면 지정된 DC(디바이스 컨텍스트)에서 이미지 색 관리를 사용하거나 사용하지 않도록 설정하거나 쿼리할 수 있습니다.

구문

int SetICMMode(
  HDC hdc,
  int mode
);

매개 변수

hdc

디바이스 컨텍스트에 대한 핸들을 식별합니다.

mode

이미지 색 관리를 켜고 끕니다. 이 매개 변수는 다음 상수 값 중 하나를 사용할 수 있습니다.

 

의미
ICM_ON
색 관리를 켭니다. 하프톤의 이전 스타일 색 보정을 해제합니다.
ICM_OFF
색 관리를 해제합니다. 하프톤의 이전 스타일 색 보정을 켭니다.
ICM_QUERY
색 관리의 현재 상태를 쿼리합니다.
ICM_DONE_OUTSIDEDC
DC 내에서 색 관리를 해제합니다. Windows 2000에서는 하프톤에 대한 이전 스타일의 색 보정도 해제합니다. Windows 95에서 지원되지 않습니다.

반환 값

이 함수가 성공하면 반환 값은 0이 아닌 값입니다.

이 함수가 실패하면 반환 값은 0입니다.

ICM_QUERY 지정되고 함수가 성공하면 반환되는 0이 아닌 값은 현재 모드를 나타내기 위해 ICM_ON 또는 ICM_OFF.

설명

시스템에서 디바이스 상태와 일치하는 ICC 색 프로필을 찾을 수 없는 경우 SetICMMode 가 실패하고 0을 반환합니다.

디바이스 컨텍스트(DC)에 대해 WCS를 사용하도록 설정하면 대부분의 Win32 API 함수를 사용하여 DC로 전달되는 색이 일치합니다. 주요 예외는 BitBltStretchBlt입니다. 한 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 함수는 RestoreDCSaveDC 함수를 호출하므로 프린터 DC에 대해 WCS가 꺼집니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보