Возможно ли определить цвет – это светлый или темный цвет?

Рассмотрим эти два розовых квадрата:

введите описание изображения здесь

И это:

введите описание изображения здесь

Как вы знаете, один светлее, а один более темный или более резкий. Проблема в том, что я могу сказать это глазами человека, но можно ли использовать системный способ или программный способ обнаружения этой информации? По крайней мере, возможно ли иметь значение, которое говорит мне, что цвет больше похож на белый или этот цвет меньше белого? (Предположим, я получил код RGB этого цвета.) Спасибо.

    Поскольку вы не указали какой-либо конкретный язык / скрипт для обнаружения более темного / светлого шестнадцатеричного кода, я хотел бы внести в него решение PHP

    демонстрация

     $color_one = "FAE7E6"; //State the hex without # $color_two = "EE7AB7"; function conversion($hex) { $r = hexdec(substr($hex,0,2)); //Converting to rgb $g = hexdec(substr($hex,2,2)); $b = hexdec(substr($hex,4,2)); return $r + $g + $b; //Adding up the rgb values } echo (conversion($color_one) > conversion($color_two)) ? 'Color 1 Is Lighter' : 'Color 1 Is Darker'; //Comparing the two converted rgb, the greater one is darker 

    Как отметил @Some Guy , я изменил свою функцию для получения лучшего / точного результата … (Добавлена ​​яркость)

     function conversion($hex) { $r = 0.2126*hexdec(substr($hex,0,2)); //Converting to rgb and multiplying luminance $g = 0.7152*hexdec(substr($hex,2,2)); $b = 0.0722*hexdec(substr($hex,4,2)); return $r + $g + $b; } 

    Демонстрация 2