[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Определение цвета по коду
GET
Привет.


Не могу решить задачку, может кто подкинет индейку.

Есть код цвета, например пурпурный: #993366

Есть 7 цветов радуги, как определить к какому цвету этот цвет наиболее близок т.е. в данном случае назвать его фиолетовым?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
dimonise
хм. интересный вопрос. я так думаю нужно рыть в сторону вообще изначального назначения кодировки цветов, т.е. по какому принципу цвета получили коды. а потом уже сделать 7 групп кодов. может я не прав. может есть решение проще.
GET
Нарыл код 2007 года (спасибо доброму человеку), вроде простой, но короче...адаптирую сейчас под себя :)



$data= array (
0 => '#ff28c9',
1 => '#a82a00',
2 => '#5340ff',
);

$colorIndexes = array (
'Черный' => array ('r' => 0, 'g' => 0, 'b' => 0),
'Синий' => array ('r' => 0, 'g' => 0, 'b' => 255),
'Зеленый' => array ('r' => 0, 'g' => 255, 'b' => 0),
'Голубой' => array ('r' => 0, 'g' => 255, 'b' => 255),
'Красный' => array ('r' => 255, 'g' => 0, 'b' => 0),
'Фиолетовый' => array ('r' => 255, 'g' => 0, 'b' => 255),
'Оранжевый' => array ('r' => 255, 'g' => 127, 'b' => 0),
'Желтый' => array ('r' => 255, 'g' => 255, 'b' => 0),
'Белый' => array ('r' => 255, 'g' => 255, 'b' => 255),
);


function checkColor ($colorHEX) {
global $colorIndexes
$color
= substr($colorHEX, 1);
$color = str_split($color, 2);
$colorind = array('r' => hexdec($color[0]), 'g' => hexdec($color[1]), 'b' => hexdec($color[2]));
$score = array();

foreach ($colorIndexes as $color => $index) {

$score[$color] = abs($index["r"] - $colorind["r"]) + abs($index["g"] - $colorind["g"]) + abs($index["b"] - $colorind["b"]);

}

return array_search(min($score), $score);
}

foreach ($data as $color) {

echo checkColor($color).'<br>';

}


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.