<?php /** * create_gradient * * Create an image that is a color gradient. * * @version 0.1 * @author Contributors at eXorithm * @link /algorithm/view/create_gradient Listing at eXorithm * @link /algorithm/history/create_gradient History at eXorithm * @license /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; } ?>