Есть ли способ сгруппировать шестнадцатеричные цвета с помощью переполнения стека

Я использую класс извлечения цвета PHP, который я нашел в GitHub для проекта, над которым я работаю.

Color Extractor Class

https://github.com/humanmade/Colors-Of-Image

Вопрос у меня есть, есть ли способ сгруппировать цвета по основным цветам.

Пример: если вы возьмете красный цвет, выше класса даст

#ff0000
#e50000
#cc0000

так в зависимости от изображения. Что я хочу сделать, это сделать все эти цвета как красные, прежде чем я сохраню в базе данных.

Есть ли какая-нибудь формула для проверки цветовой гаммы? Я ищу несколько дней, но не могу найти никакой информации. Цените свое время.

0

Решение

Это действительно зависит от того, сколько групп вы хотели бы иметь, НО, поскольку три пары отвечают за КРАСНЫЙ-ЗЕЛЕНЫЙ-СИНИЙ, вы можете разделить всю строку (без хеша) на пары, а затем вычислить каждую пару в десятичную с hexdec и посмотрите, находятся ли они в определенном диапазоне по вашему выбору.

То есть: если результат hexdec намного больше, чем сумма второй и третьей пары, вы, скорее всего, смотрите на какой-то вариант красного цвета.

образец кода:

$colors = [
'#ff0000',
'#e50000',
'#cc0000',
];

foreach ($colors as $hex){
list($redHex,$greenHex,$blueHex) = str_split(trim($hex,'#'),2);
$redVal = hexdec($redHex);
$greenVal = hexdec($greenHex);
$blueVal = hexdec($blueHex);
if($redVal > $greenVal+$blueVal){
echo $hex.' is most likely red';
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector