Значение Magic COLORREF / RGB для определения, когда использовать светлый / темный текст - PullRequest
6 голосов
/ 16 февраля 2010

Несколько лет назад в моей давно утерянной копии книги по программированию Чарльза Петцольда для Windows 3.0 было задокументировано волшебное значение COLORREF или RGB, с помощью которого можно проверить, следует ли рисовать текст светлым или темным цветом. Например. если цвет фона был ниже этого значения, то используйте черный текст, если он был выше, используйте белый текст. Кто-нибудь знает / помнит, что это за магическое значение?

1 Ответ

8 голосов
/ 16 февраля 2010

Я не могу рассказать о COLORREF, но у меня хорошие результаты, используя яркость в качестве порога:

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

с цветами, выраженными в виде десятичного значения от 0,0 до 1,0.

Если Y> = 0,5, я считал фон «светлым» (и использовал темный текст), если Y <0,5, я делал обратное. </p>

Я помню, я также использовал другие формулы, включая простое среднее:

     L = (R+G+B)/3

но мне не понравился результат. Мне кажется логичным, что зеленый способствует свету больше, чем красный, а красный больше, чем синий.

...