Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Как программно понять, что текст заданного цвета будет затруднено прочитать на выбранном цвете фона?

Пишу окно лога программы, выводятся сообщения разного цвета в зависимости от типа сообщения. Периодически возникает такая комбинация цветов, что текст сложно прочитать. Хочу динамически менять цвет текста в зависимости от цвета фона, чтобы было не проблематично воспринимать информацию.
Есть два цвета представленные в RGB (Color). Первый цвет - это цвет текста, второй цвет - это цвет фона. Как программно понять, что цвет текста будет сложно различим на цвете фона?.. Мне кажется есть достаточно простое решение, но никак не могу до него додуматься... Порог выберу опытным путем, чтобы менять цвет текста, но не могу понять, что нужно сравнить в этих цветах, чтобы 100% мог утверждать: "Да, сложности прочтения текста не будет".


Ответ

Я думаю самый простой способ - это взять длины векторов цвета фона и текста (SQRT(R^2+b^2+G^2)) И вычесть их друг из друга - если разность маленькая - то плохо видно. Можно наверное ещё перегнать в монохромность (там примерно как длинна только с определёнными коэфицентами основанными на восприятии цвета глазом) и так же проверить.

Комментариев нет:

Отправить комментарий