Генератор градиентов

Формирует градиентную картинку налету на основании переданных паратметров:



Ширина:

Высота:

Цвет начала:

Цвет конца:




<img src="gradient.php?type=g&w=500&h=30">

Данный пример позволяет сформировать градиентное изображение в online.

Исходный код примера:

//определяем тип: вертикальный или горизонтальный
$type = (isset($_GET['type']) && $_GET['type'] == 'g') ? 'g' : 'v';

//определяем высоту
$height = (isset($_GET['h'])) ? intval($_GET['h']) : 100;

//определяем ширину
$width = (isset($_GET['w'])) ? intval($_GET['w']) : 60;


//определяем цвета
$start = (isset($_GET['s']) && preg_match('#[0-9A-F]{6}#',$_GET['s'])) ? $_GET['s'] : '000000';
$end = (isset($_GET['e']) && preg_match('#[0-9A-F]{6}#',$_GET['e'])) ? $_GET['e'] : 'FFFFFF';

//определяем RGB этих цветов
$start_r= hexdec(substr($start, 0, 2));
$start_g = hexdec(substr($start, 2, 2));
$start_b = hexdec(substr($start, 4, 2));
$end_r = hexdec(substr($end, 0, 2));
$end_g = hexdec(substr($end, 2, 2));
$end_b = hexdec(substr($end, 4, 2));

//создаём картинку
$image = imagecreate($width, $height);

//определяем тип и рисуем градиент
if($type == 'g'){
   for($x=0; $x<$width; $x++){
    $new_r = $start_r - intval(($start_r - $end_r) / $width * $x);
    $new_g = $start_g - intval(($start_g - $end_g) / $width * $x);
    $new_b = $start_b - intval(($start_b - $end_b) / $width * $x);
    $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b);
    imageline($image, $x, 0, $x, $height, $row_color);
    }
}else{
  for($y=0; $y<$height; $y++){
    $new_r = $start_r - intval(($start_r - $end_r) / $height * $y);
        $new_g = $start_g - intval(($start_g - $end_g) / $height * $y);
        $new_b = $start_b - intval(($start_b - $end_b) / $height * $y);
        $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b);
        imageline($image, 0, $y, $width, $y, $row_color);
        }

}

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

Примеры использования:

<img src="gradient.php">

<img src="gradient.php?type=g&w=500&h=80&s=F01935&e=08B864">
    Описание параметров:
  • type - тип градиента (горизонтальный - g, вертикальный - v - по умолчанию)
  • w - ширина картинки. По умолчанию 60
  • h - высота картинки. По умолчанию 100
  • s - цвет начала. По умолчанию чёрный
  • e - цвет конца. По умолчанию белый.

Источник: http://phpcodes.ru/code14.html


.