Как по цвету фона в RGB определить светлый он или тёмный? Есть цвет фона - он может быть любым, даже #791
И есть заранее известные и определённые светлые и тёмные цвета текста.
Например, светлые - #fff, #ff0, #0f0
Тёмные - #800, #000
Очевидно, что на светлом фоне не будет виден светлый текст, и на тёмном - тёмный.
Как определить, светлый фон или тёмный (true/false), чтобы подобрать соответствующий цвет текста?

21 Авг 2019 в 06:03
209 +1
0
Ответы
1

Для определения, является ли фон светлым или тёмным, можно воспользоваться формулой для определения контраста между двумя цветами.

Для RGB значения цветов представляются в виде трёх чисел от 0 до 255: одно для красного RRR, одно для зелёного GGG и одно для синего BBB.

Для определения контраста между цветом фона и цветом текста можно использовать следующее уравнение:

L = 0.2126<em>R0.2126 <em> R0.2126<em>R + 0.7152</em>G0.7152 </em> G0.7152</em>G + 0.0722∗B0.0722 * B0.0722B

Это уравнение учитывает восприятие цвета человеческим глазом и оценивает яркость цвета на основе его RGB значения.

Если значение L больше 128 половинаот255половина от 255половинаот255, то фон считается светлым. Если значение L меньше или равно 128, фон считается тёмным.

Пример:
Для цвета фона #791: R=119, G=153, B=145
L = 0.2126<em>1190.2126 <em> 1190.2126<em>119 + 0.7152</em>1530.7152 </em> 1530.7152</em>153 + 0.0722∗1450.0722 * 1450.0722145 ≈ 139.63

Таким образом, цвет фона #791 можно считать светлым.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир