Как по цвету фона в RGB определить светлый он или тёмный? Есть цвет фона - он может быть любым, даже #791 И есть заранее известные и определённые светлые и тёмные цвета текста. Например, светлые - #fff, #ff0, #0f0 Тёмные - #800, #000 Очевидно, что на светлом фоне не будет виден светлый текст, и на тёмном - тёмный. Как определить, светлый фон или тёмный (true/false), чтобы подобрать соответствующий цвет текста?
Это уравнение учитывает восприятие цвета человеческим глазом и оценивает яркость цвета на основе его 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.0722∗145 ≈ 139.63
Таким образом, цвет фона #791 можно считать светлым.
Для определения, является ли фон светлым или тёмным, можно воспользоваться формулой для определения контраста между двумя цветами.
Для 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.0722∗B
Это уравнение учитывает восприятие цвета человеческим глазом и оценивает яркость цвета на основе его 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.0722∗145 ≈ 139.63
Таким образом, цвет фона #791 можно считать светлым.