Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Контраст цвета (https://forum.antichat.xyz/showthread.php?t=206991)

b0bahhh 26.05.2010 20:04

Контраст цвета
 
Интересно писал ли кто нибудь такие функции вычисления контрастирующего цвета для данного на PHP, скорее всего нужен в формате RGB.

Chaak 26.05.2010 20:31

PHP код:

$rgb imagecolorat($im1015);
$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

с виду это инверсия цвета :) хоть ТС и трудно понять (предложения без знаков препинания), но мне кажется, что ему нужно сделать картинку контрастнее... либо выделить контрастирующий цвет.. хз

b0bahhh 26.05.2010 21:52

Мне нужно например сделать фон ячейки, и определить цвет текста на ней. Т.е. можно есть какие нибудь формулы вычисления контрастирующего цвета. Цвет не статический.
Т.е. есть случайный цвет, и нужно вычислить цвет на нем, который бы контрастировал.

Chaak 26.05.2010 22:12

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

копай в сторону более темного и более белого цвета.. т.е с одной стороны от 127 и с другой

roxblnfk 26.05.2010 23:44

Цитата:

Сообщение от b0bahhh
Мне нужно например сделать фон ячейки, и определить цвет текста на ней. Т.е. можно есть какие нибудь формулы вычисления контрастирующего цвета. Цвет не статический.
Т.е. есть случайный цвет, и нужно вычислить цвет на нем, который бы контрастировал.

со второго раза понял, что надо :) (да и то не совсем понятно)
Если разложить спектр по кругу (окружности, кольцом в общем), то контрастными будут противоположные цвета. (они так и называются) Т.е. синему - оранжевый, красному - зелёный, жёлтому - фиолетовый..
Ты через GD собираешься рисовать контрастные буквы по нестатическому фону (цвет меняется с координатами)?
Эти буквы надо закрашивать динамически или они будут монотонны? В первом случае нужно создавать маску текста, во втором сканировать цвет в области буквы...
Самым правильным ответом будет картинка-пример и небольшое пояснение в местах неодозначности :)

b0bahhh 27.05.2010 10:59

Я читал что можно напротив, но и под углом 120 градусов тоже. Ведь одному фоновому цвету соответствует не один же контрастный, их может быть много.

roxblnfk 27.05.2010 14:48

Я про противоположные говорил (они по-любому контрастны), да и реализовать не сложно. А то что не один цвет контрастирует - тоже верно, но с противоположными можно считать как универсальный метод.
Просто детали вопроса не ясны. Тебе нужно всего лишь цвет контрастный определить, задавая исходный?

Chaak 27.05.2010 15:26

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

TikTik 27.05.2010 17:42

Не совсем понял задачу но думаю эта статейка может помочь http://habrahabr.ru/blogs/infosecurity/63854/


Время: 17:30