2010-02-16 3 views
5

몇 년 전에 Charles Petzold의 Windows 3.0 프로그래밍 설명서를 오랫동안 잃어버린 복사본에 마술 색 또는 RGB 값이 문서화되어있어 밝은 색이나 어두운 색으로 텍스트를 그려야합니다. 예 : 배경색이이 값보다 작 으면 검정색 텍스트를 사용하고, 검정색 텍스트가 더 높으면 흰색 텍스트를 사용하십시오. 누구든지이 마법의 가치가 무엇인지 아는가/기억합니까?밝은 색/어두운 색 텍스트를 사용할시기를 결정하는 Magic COLORREF/RGB 값

+0

두 개의 RGB 값에서 "아래"와 "위"를 어떻게 정의합니까? 그레이 스케일 만 사용하고 있습니까? – suszterpatt

+0

HSL로 변환하는 것이 더 나은 방법 일 수 있습니다. 그런 다음 L (또는 가능한 S) 구성 요소를 기반으로 확인할 수 있습니다. –

+0

RGB 값 자체를 보면 허용 오차를 계산할 수 있습니다. 그것은 매우 흥미있는 것처럼 들린다! – Layke

답변

7

나는 COLORREF에 대해 말할 수 있지만 임계 값과 luminance 사용하여 좋은 결과를 가지고 : 색상

 Y= 0.3 * R + 0.59 * G + 0.11 * B 

0.0과 1.0 사이의 10 진수 값으로 표현했다.

Y> = 0.5 인 경우 Y는 < 0.5 인 경우 배경을 "밝게"(어두운 텍스트로 사용)로 간주했습니다.

 L = (R+G+B)/3 

하지만 결과를 좋아하지 않았다

은 내가 또한 단순 평균을 포함한 다른 공식을 사용 기억합니다. Green이 Blue보다 Red와 Red보다 더 많은 밝기에 기여한다는 것은 논리적으로 보입니다.

+0

휘도 계산이 완벽하게 작동합니다. 나는 그 마법의 COLORREF 값을 언젠가 발견 할 것이다. :) – Rob

관련 문제