Как увидеть, слишком ли свет rgb
У меня есть приложение, в котором клиент выбирает цвет.
Я не могу позволить этому цвету быть слишком светлым.
Есть ли способ увидеть это, чтобы клиент не мог использовать слишком светлый цвет?
Большое вам спасибо!
слишком светлый в случае цвет почти белый.... у меня есть веб-сайт с белым фоном, и пользователь может выбрать цвет через плагин jquery.
Я хочу разрешить пользователю выбирать цвет, который он хочет, но не может быть слишком легким.
Ответы
Ответ 1
Если контраст - это то, что вы ищете, тогда просмотрите эту статью.
Они показывают такую функцию, чтобы выбрать цвет текста на основе любого произвольного цвета:
function isTooLightYIQ(hexcolor){
var r = parseInt(hexcolor.substr(0,2),16);
var g = parseInt(hexcolor.substr(2,2),16);
var b = parseInt(hexcolor.substr(4,2),16);
var yiq = ((r*299)+(g*587)+(b*114))/1000;
return yiq >= 128;
}
// usage:
element.style.color = isTooLightYIQ('ff0045') ? '#000' : '#fff';
Вышеуказанная функция вернет true, если цвет слишком светлый, чтобы белый текст был доступен для чтения поверх этого цвета.
Ответ 2
'слишком светлый' относительно чего? Некоторое изображение? чисто белый? какой-то оттенок серого? Самый простой способ - просто удостовериться, что один из значений члена R, G, B выше некоторого порогового значения, хотя это не поможет, если пользователь выбирает (128,0,0) и наклеивается на изображение, которое (127, 0,0) - разница составляет (1,0,0) и была бы невидимой или, по крайней мере, почти невозможной для обнаружения на большинстве мониторов.
Ответ 3
Вы не слишком конкретны, но предполагаете, что используете Javascript,
var v = Math.round((r+g+b)/3)
и проверьте, что он ниже определенного порога?
Кроме того, в какой форме находится цвет? RGB? HSL? Hex?