Просмотр полной версии : Контраст цвета
Интересно писал ли кто нибудь такие функции вычисления контрастирующего цвета для данного на PHP, скорее всего нужен в формате RGB.
$rgb = imagecolorat($im, 10, 15);
$res = array();
$res[0] = ($rgb >> 16) & 0xFF;
$res[1] = ($rgb >> 8) & 0xFF;
$res[2] = $rgb & 0xFF;
for($i = 0; $i < 3; $i++)
echo (255-$res[$i]).' ';
ну как-то так
roxblnfk
26.05.2010, 21:08
с виду это инверсия цвета :) хоть ТС и трудно понять (предложения без знаков препинания), но мне кажется, что ему нужно сделать картинку контрастнее... либо выделить контрастирующий цвет.. хз
Мне нужно например сделать фон ячейки, и определить цвет текста на ней. Т.е. можно есть какие нибудь формулы вычисления контрастирующего цвета. Цвет не статический.
Т.е. есть случайный цвет, и нужно вычислить цвет на нем, который бы контрастировал.
по идее противоположные цвета и есть контрастные.. хотя хз.
белый и черный антонимы, а желтый и красный уже нет..
копай в сторону более темного и более белого цвета.. т.е с одной стороны от 127 и с другой
roxblnfk
26.05.2010, 23:44
Мне нужно например сделать фон ячейки, и определить цвет текста на ней. Т.е. можно есть какие нибудь формулы вычисления контрастирующего цвета. Цвет не статический.
Т.е. есть случайный цвет, и нужно вычислить цвет на нем, который бы контрастировал.
со второго раза понял, что надо :) (да и то не совсем понятно)
Если разложить спектр по кругу (окружности, кольцом в общем), то контрастными будут противоположные цвета. (они так и называются) Т.е. синему - оранжевый, красному - зелёный, жёлтому - фиолетовый..
Ты через GD собираешься рисовать контрастные буквы по нестатическому фону (цвет меняется с координатами)?
Эти буквы надо закрашивать динамически или они будут монотонны? В первом случае нужно создавать маску текста, во втором сканировать цвет в области буквы...
Самым правильным ответом будет картинка-пример и небольшое пояснение в местах неодозначности :)
Я читал что можно напротив, но и под углом 120 градусов тоже. Ведь одному фоновому цвету соответствует не один же контрастный, их может быть много.
roxblnfk
27.05.2010, 14:48
Я про противоположные говорил (они по-любому контрастны), да и реализовать не сложно. А то что не один цвет контрастирует - тоже верно, но с противоположными можно считать как универсальный метод.
Просто детали вопроса не ясны. Тебе нужно всего лишь цвет контрастный определить, задавая исходный?
белый к примеру будет контрастировать с красным, синим, черным, зеленым, но не будет с яркими цветами.. желтый, бледно-розовый
Не совсем понял задачу но думаю эта статейка может помочь http://habrahabr.ru/blogs/infosecurity/63854/
roxblnfk
27.05.2010, 18:03
ТС, ты немного не внятно высказал вопрос, вот сделал скрипт:
http://roxblnfk.ath.cx/kop4a111.php?y=120&x=240
примерно противоположные цвета контрастны, разве что менять интенсивность/яркость обратно аналогичным изменениям фона.
В ссылке меняй X и Y, чтобы двигать полосу
Если ты задаёшь оба цвета (именно решаешь, какой он будет, а не берёшь с картинки на палитру), то мой скрипт тебе подойдёт (цвет там задаётся не через R G B).
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot