Как увидеть, слишком ли свет 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?