Помогите сделать градиент

Печать RSS
211

N

Эцилопп сией тентуры
0
<?
function GradientLetter($text, $from='', $to='', $mode = 'hex')   
{  

if($mode == 'hex')  
{  
$to  = hexdec($to['0'].$to['1']).','.hexdec($to['2'].$to['3']).','.hexdec($to['4'].$to['5']);  
$from = hexdec($from['0'].$from['1']).",".hexdec($from['2'].$from['3']).",".hexdec($from['4'].$from['5']);  
}  
  

if (empty($text)) return null; else $levels = strlen($text);  
if (empty($from)) $from = array(0, 0, 255); else $from = explode(',', $from);  
if (empty($to)) $to = array(255, 0, 0); else $to = explode(',', $to);  
  
$output = null;  
  
for ($i = 1; $i <= $levels; $i++)  
{  

for ($ii = 0; $ii < 3; $ii++)  
{  
$tmp[$ii] = $from[$ii] - $to[$ii];  
$tmp[$ii] = floor($tmp[$ii] / $levels);  
$rgb[$ii] = $from[$ii] - ($tmp[$ii] * $i);  
  
if ($rgb[$ii] > 255) $rgb[$ii] = 255;  
  
$rgb[$ii] = dechex($rgb[$ii]);  
$rgb[$ii] = strtoupper($rgb[$ii]);  
  
if (strlen($rgb[$ii]) < 2) $rgb[$ii] = '0'.$rgb[$ii];  
}  


$output .= '<span style="color: #'.$rgb['0'].$rgb['1'].$rgb['2'].'">'.$text[$i-1].'</span>';  
}  
return $output;  
}  
?>
Изменил: Nu3oN (07.07.2010 / 03:22)
N

Эцилопп сией тентуры
0
$text - сама строка
$from - начальный цвет
$to - Конечный цвет
$mode - Режим, по умолчанию hex

Пример использования
<?
echo GradientLetter('Nu3oN', 'FF0000', 'FFCC00').'<br />';  
echo GradientLetter('Nu3oN', '255,255,0', '150,150,0', 'rgb');  
?>
пример http://upwap.ru/941325
Изменил: Nu3oN (07.07.2010 / 03:21)
Автор
Пацак
0
Спс заяц )) заюзаю твой код авось получицо )
Автор
Пацак
0
Все работает, но опять же загвоздка блин не пойму как сделать этот градиент, только когда он нужен, т.е. только тогда, когда его выбрали
Автор
Пацак
0
Все, разобрался аднака, спс заяц smile
Автор
Пацак
0
Заяц я тут обнаружил если ник русскими, и выберешь градиент - ник становится квадратиками
С

Землянин
0
В начале функции вставь
$text=str_split($text);
И замени $levels=strlen($text); на $levels=count($text);
Должно помочь
Автор
Пацак
0
Спасибо, но к сожелению не помогло, вместо нескольких квадратиков просто стало выводить один..

Чатланин
0
удалено
Изменил: Александр (14.07.2010 / 00:28)
N

Эцилопп сией тентуры
0
Завтра гляну... я ша уже даже смотреть на код не хочу
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск