DrvIcmCreateColorTransform 함수(winddi.h)
DrvIcmCreateColorTransform 함수는 ICM 색 변환을 만듭니다.
구문
HANDLE DrvIcmCreateColorTransform(
[in] DHPDEV dhpdev,
[in] LPLOGCOLORSPACEW pLogColorSpace,
[in, optional] PVOID pvSourceProfile,
[in] ULONG cjSourceProfile,
[in] PVOID pvDestProfile,
[in] ULONG cjDestProfile,
[in, optional] PVOID pvTargetProfile,
[in] ULONG cjTargetProfile,
[in] DWORD dwReserved
);
매개 변수
[in] dhpdev
물리적 디바이스의 PDEV에 대한 핸들입니다.
[in] pLogColorSpace
논리적 색 공간 구조체에 대한 포인터입니다. LOGCOLORSPACEW 구조체는 Microsoft Windows SDK 설명서에 정의되어 있습니다. pvSourceProfile이 NULL인 경우 드라이버는 이 구조체에서 원본 색 공간 정보를 가져와야 합니다.
[in, optional] pvSourceProfile
원본 프로필의 메모리 맵에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.
[in] cjSourceProfile
원본 프로필 메모리 맵의 크기(바이트)를 지정합니다. pvSourceProfile이 NULL이면 이 매개 변수를 0으로 설정해야 합니다.
[in] pvDestProfile
대상 프로필의 메모리 맵에 대한 포인터입니다.
[in] cjDestProfile
대상 프로필 메모리 맵의 크기(바이트)를 지정합니다.
[in, optional] pvTargetProfile
대상 프로필의 메모리 맵에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.
[in] cjTargetProfile
대상 프로필 메모리 맵의 크기(바이트)를 지정합니다. pvTargetProfile이 NULL이면 이 매개 변수를 0으로 설정해야 합니다.
[in] dwReserved
0으로 설정해야 하는 예약된 매개 변수입니다.
반환 값
DrvIcmCreateColorTransform 은 성공 시 생성된 변환에 대한 핸들을 반환합니다. 그렇지 않으면 오류를 보고하고 NULL을 반환합니다.
설명
드라이버는 다음과 같이 프로필 데이터에서 색 변환을 만듭니다.
- 드라이버는 NULL이 아닌 경우 pvSourceProfile이 가리키는 원본 프로필을 사용해야 합니다. 그렇지 않으면 드라이버는 pLogColorSpace 가 원본 색 공간 정보를 가리키는 구조의 데이터를 사용해야 합니다.
- 드라이버는 대상 프로필을 수신하지만 대상 프로필은 수신하지 않으면 지정된 원본 색 공간에서 지정된 대상 색 공간으로 색을 변환하는 데 필요한 데이터를 저장해야 합니다.
- 드라이버는 대상 프로필과 대상 프로필을 모두 받으면 지정된 원본 색 공간에서 지정된 대상 색 공간으로 색을 변환하고 대상 색 공간에서 대상 색 공간으로 다시 변환하는 데 필요한 데이터를 저장해야 합니다. 이 시나리오에서 드라이버의 디바이스는 이미지를 교정할 수 있는 대상 디바이스입니다. 그런 다음 드라이버는 교정 이미지의 색 공간을 대상 디바이스의 색 공간으로 변환할 수 있어야 합니다.
제공된 프로필은 ICC 프로필 형식의 버전 2.10을 준수합니다. 드라이버가 지정된 형식을 이해하지 못하는 경우 호출에 실패해야 합니다.
드라이버는 각 프로필의 전체 메모리 맵에 안전하게 액세스할 수 있습니다. pvSourceProfile, pvDestProfile 및 pvTargetProfile 포인터는 DrvIcmCreateTransform 호출을 scope 동안에만 유효합니다.
ICM 지원을 보고하는 드라이버는 이 함수를 구현해야 합니다. 드라이버는 DEVINFO 구조체의 flGraphicsCaps 멤버에서 GCAPS_ICM 플래그를 설정하여 ICM에 대한 지원을 나타냅니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | winddi.h(Winddi.h 포함) |