Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с цветом
 
 автор: Jaroslav   (26.11.2009 в 13:48)   письмо автору
 
 

Есть некоторый цвет в RGB, Например, #D8DEF3
Подскажите, пожалуйста, как можно автоматически подобрать для него другой оттенок.
Близкий, но другой.. Но чтобы не было так.. что был синий, а стал желтый или зеленый.
Такое вообще возможно?
На ум приходит такое решение.
Создаем при помощи библиотеки GD рисунок этого цвета, к нему применяем прозрачность (если такое можно) и определяем, какой получился цвет... Правильно? :)
Или есть какие-то другие варианты?

  Ответить  
 
 автор: Петр   (26.11.2009 в 14:13)   письмо автору
 
   для: Jaroslav   (26.11.2009 в 13:48)
 

Берем RGB цвет, например #d8def3
Разбиваем на составляющие (по 2 символа)
d8, de, f3 прибавляем или вычитаем одинаковое число к каждому цвету, получаем цвет светлее или темнее, можно прибавлять число только к одному цвету.

$s = 10; // интервал
$r = D8 = 216 + $s = 226 = E2
$g = DE = 222 + $s = 232 = E8
$b = F3 = 243 + $s = 253 = FD

  Ответить  
 
 автор: Jaroslav   (26.11.2009 в 17:51)   письмо автору
 
   для: Петр   (26.11.2009 в 14:13)
 

Спасибо.
А как переводится:

D8 = 216
DE = 222
F3 = 243

? Ещё такой вопросик остался..

  Ответить  
 
 автор: sim5   (27.11.2009 в 04:10)   письмо автору
 
   для: Jaroslav   (26.11.2009 в 17:51)
 

hexdec()

Если у вас есть цвет D8DEF3, то вы можете получить индекс этого цвета:
$color = imagecolorsforindex($im, hexdec("D8DEF3"));

по которому можно установить любой цвет:
$color = imagecolorallocate ($im, $color['red']+Ri, $color['green']+Gi, $color['blue']+Bi);

  Ответить  
 
 автор: Jaroslav   (27.11.2009 в 13:27)   письмо автору
 
   для: sim5   (27.11.2009 в 04:10)
 

Большое спасибо :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования