Это быстрый и грязный метод, который мог бы сделать:
Раздельное ваш Hex цвет в R/G/B байт.
Преобразуйте шестнадцатеричные байты в десятичные числа, добавьте их вместе и разделите на 3, чтобы получить приблизительное представление о средней «яркости».
Выберите верхний предел и нижний предел того, насколько ярким вы хотели бы, чтобы ваши цвета находились в пределах максимально возможного диапазона от 0 до 255 и исключали любые, которые находятся за пределами этих двух пределов.
E.G.
#FFBBAA => FF BB AA => (255 + 187 + 170)/3 = 204.
Если вы решили 200 ваш верхний предел "яркости", этот цвет слишком яркий. Установленные вами пределы полностью субъективны, так что до вас.
Если вам удобно выполнять вычисления в Hex напрямую, вы можете пропустить преобразование в десятичное целое и сохранить все вычисления в Hex.
См http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color –
Если все 3 группы 2 являются малочисленность , цвет будет темным – gaynorvader
Вы можете [конвертировать RGB в HSL] (http://stackoverflow.com/questions/2348597/why-doesnt-this-javascript-rgb-to-hsl-code-work) – jantimon