Create Gradient

<?php

/**
 * create_gradient
 *
 * Create an image that is a color gradient.
 *
 * @version 0.1
 * @author Contributors at eXorithm
 * @link https://www.exorithm.com/algorithm/view/create_gradient Listing at eXorithm
 * @link https://www.exorithm.com/algorithm/history/create_gradient History at eXorithm
 * @license https://www.exorithm.com/home/show/license
 *
 * @param string $start_color (hex color code) The start color of the gradient.
 * @param string $end_color (hex color code) The end color of the gradient.
 * @param number $size The length of the resulting image.
 * @param number $thickness The thickness of the resulting image.
 * @param mixed $orientation The orientation of the gradient.
 * @return resource GD image
 */
function create_gradient($start_color='ffffff',$end_color='000000',$size=100,$thickness=5,$orientation='')
{
	if ($orientation=="vertical") {
		$img=imagecreatetruecolor($thickness,$size);
	} else {
		$img=imagecreatetruecolor($size,$thickness);
	}
	
	$start_r  = hexdec(substr($start_color, 0, 2));
	$start_g  = hexdec(substr($start_color, 2, 2));
	$start_b  = hexdec(substr($start_color, 4, 2));
	
	$end_r  = hexdec(substr($end_color, 0, 2));
	$end_g = hexdec(substr($end_color, 2, 2));
	$end_b = hexdec(substr($end_color, 4, 2));
	
	for ($i=0;$i<$size;$i++) {
		$red = round($start_r - ($start_r-$end_r) * ($i / ($size-1)));
		$green = round($start_g - ($start_g-$end_g) * ($i / ($size-1)));
		$blue = round($start_b - ($start_b-$end_b) * ($i / ($size-1)));
		$color = imagecolorallocate($img, $red, $green, $blue);
		if ($orientation=="vertical") {
			for ($k=0;$k<$thickness;$k++)
				imagesetpixel($img, $k, $i, $color);
		} else {
			for ($k=0;$k<$thickness;$k++)
				imagesetpixel($img, $i, $k, $color);
		}
	}
	
	return  $img;
}

?>