function gradient($start, $end, $steps = 256) { $s = hexdec($start) & 0xFFFFFF; $e = hexdec($end) & 0xFFFFFF; $sr = ($s >> 16) & 0xFF; $sg = ($s >> 8) & 0xFF; $sb = $s & 0xFF; $er = ($e >> 16) & 0xFF; $eg = ($e >> 8) & 0xFF; $eb = $e & 0xFF; $dr = ($sr - $er) / $steps; $dg = ($sg - $eg) / $steps; $db = ($sb - $eb) / $steps; $ret = array(); for($i = 0; $i < $steps; $i++) { $ret[] = sprintf('%02x%02x%02x', $sr - ($dr * $i), $sg - ($dg * $i), $sb - ($db * $i)); } return $ret; }