Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.8960
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 11.10.2008, 16:17   #1
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
По умолчанию цвета

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

например #ee5555 и #ffffff и чтобы сервис выдал градиент (плавный цветовой переход от начального цвета к конечному (и чтобы можно было задавать плавность перехода)) и самое главное чтобы напротив каждого цвета был его код в формате #ffffff

подскажите плз алгоритм такой фигни чтобы можно было использовать в скриптах
mudoeb вне форума  
Старый 11.10.2008, 20:01   #2
zlaya ssuka
ChefJavaProgrammierer
 
Аватар для zlaya ssuka
 
Регистрация: 05.04.2007
Сообщений: 1,166
Бабло: $15090
Отправить сообщение для zlaya ssuka с помощью ICQ
По умолчанию

если делать по тупому, то,
1. берешь разницы

r: ff - ee = 11
g: ff - 55 = AA
b: ff - 55 = AA

2. берешь, например, 17 шагов, делишь интервалы на количество шагов, и получаешь
ee + 1, 55+ A, 55+A
ee + 2, 55+ 14, 55+14
ee + 3, 55+ 1E, 55+1E
...
ee+11, 55+AA, 55+AA
zlaya ssuka вне форума  
Старый 12.10.2008, 17:42   #3
dveredel
Читатель
 
Аватар для dveredel
 
Регистрация: 23.11.2007
Сообщений: 423
Бабло: $48745
По умолчанию

Вобще-то очень простая задача. За 15 минут накатал
Лови...
Код:
<form method="get">
Firts color: #<input name="start" type="text" size="5">&nbsp;&nbsp;
Second color: #<input name="end" type="text" size="5">&nbsp;&nbsp;
Steps: #<input name="steps" type="text" size="5" value="5">&nbsp;&nbsp;
<input type="submit" value="Show">
</form>

<?php
if(!isset($_GET['start']) || !isset($_GET['end']) || !isset($_GET['steps'])) exit;

$c = createGradient(hexdec($_GET['start']), hexdec($_GET['end']), $_GET['steps']);

echo '<table cellpadding=5 cellspacing=0>';
foreach($c as $cl) {
	echo '<tr><td width="40" height="40" style="background-color: #'.$cl.'">&nbsp</td><td>#'.$cl.'</td></tr>';
}
echo '</table>';

function createGradient($start_color, $end_color, $steps)
{
	$colors = array(); $steps--;
	$start['r'] = ($start_color & 0xFF0000) >> 16;
	$start['g'] = ($start_color & 0x00FF00) >> 8;
	$start['b'] = $start_color & 0x0000FF; 
	$end['r'] = ($end_color & 0xFF0000) >> 16;
	$end['g'] = ($end_color & 0x00FF00) >> 8;
	$end['b'] = $end_color & 0x0000FF;
	$a['r'] = ($end['r'] - $start['r']) / $steps;
	$a['g'] = ($end['g'] - $start['g']) / $steps;
	$a['b'] = ($end['b'] - $start['b']) / $steps;
	
	for($i = 0; $i<=$steps; $i++) {
		$r = $start['r'] + round($a['r'] * $i);
		$g = $start['g'] + round($a['g'] * $i);
		$b = $start['b'] + round($a['b'] * $i);
		$colors[] = sprintf('%06X', ($r << 16) + ($g << 8) + $b);
	}

	return $colors;
}

?>
dveredel вне форума  
Старый 12.10.2008, 18:39   #4
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
ТС -->
автор темы ТС По умолчанию

Цитата:
Вобще-то очень простая задача. За 15 минут накатал
вообщето спасибо
mudoeb вне форума