다음을 통해 공유


색상 근사치와 디더링

애플리케이션은 디바이스의 색 기능에 관계없이 색을 사용할 수 있지만 결과 출력은 색을 신중하게 선택하는 출력만큼 유익하고 만족스럽지 않을 수 있습니다. 가능한 모든 색 값에 대한 정확한 일치를 보장하는 디바이스는 거의 없습니다. 따라서 애플리케이션이 디바이스에서 생성할 수 없는 색을 요청하는 경우 시스템은 디바이스에서 생성할 수 있는 색을 사용하여 해당 색을 근사화합니다. 예를 들어 애플리케이션이 흑백 프린터에 대한 빨간색 펜을 만들려고 하면 시스템에서 검은색을 빨간색의 근사값으로 사용하는 대신 검은색 펜을 받습니다.

애플리케이션은 GetNearestColor 함수를 사용하여 시스템에서 지정된 색을 근사화할지 여부를 검색할 수 있습니다. 이 함수는 색 값을 사용하고 디바이스에서 생성할 수 있는 가장 일치하는 색의 색 값을 반환합니다. 시스템에서 이 근사치를 확인하는 데 사용하는 방법은 디바이스 드라이버 및 해당 색 기능에 따라 달라집니다. 대부분의 경우 대략적인 색의 전체 강도는 요청된 색의 강도와 가장 가깝습니다.

응용 프로그램에서 펜을 만들거나 텍스트 색을 설정하는 경우 정확한 일치 항목이 없으면 시스템은 항상 색을 근사화합니다. 애플리케이션에서 단색 브러시를 만들 때 시스템은 디더링을 통해 요청된 색을 시뮬레이트하려고 시도할 수 있습니다. 디더링 패턴에서 두 개 이상의 색을 번갈아 가며 색을 시뮬레이션합니다. 예를 들어 빨간색과 흰색의 다양한 조합을 번갈아 가며 다양한 분홍색 음영을 시뮬레이션할 수 있습니다. 색과 패턴에 따라 디더링이 적절한 시뮬레이션을 생성할 수 있습니다. 단색 장치에 가장 유용합니다. 단색 장치는 사용 가능한 "색"의 수를 단순한 흑백 이상으로 확장하기 때문입니다.

디더링된 색을 만드는 데 사용되는 메서드는 디바이스 드라이버에 따라 달라집니다. 대부분의 디바이스 드라이버는 요청된 빨강, 녹색 및 파란색 색의 강도 값을 기반으로 패턴을 생성하는 표준 디더링 알고리즘을 사용합니다. 일반적으로 디바이스에서 생성할 수 없는 요청된 색은 시뮬레이션의 대상이 되지만 시스템에서 색을 시뮬레이트할 때 애플리케이션에 알림이 전송되지 않습니다. 또한 애플리케이션은 디바이스 드라이버의 디더링 알고리즘을 수정하거나 변경할 수 없습니다. 그러나 애플리케이션은 패턴 브러시를 만들고 사용하여 알고리즘을 무시할 수 있습니다. 이러한 방식으로 애플리케이션은 브러시를 만드는 데 사용하는 비트맵의 단색을 결합하여 자체 디더링된 색을 만듭니다.