Archiv:

Latest photoblog

photoblog

Blog » Linearer Farbverlauf für Tabellen

Linearer Farbverlauf für Tabellen

Ich brauchte kürzlich ein Script, welches in einer Tabelle jede Zeile so färbte, dass sich ein Farbverlauf ergab. Vielleicht braucht ja der ein oder andere von Euch vielleicht mal eine ähnliche Spielerei, daher möcht ich das Script nicht vorenthalten:

<?php
/**
 * Erzeugt einen linearen Farbverlauf von einer Farbe zu einer anderen Farbe
 *
 * @author    Manuel Bieh
 * @param     string      Hex-Wert als Ausgangsfarbe
 * @param     string      Hex-Wert als Zielfarbe
 * @param     integer     Anzahl der Zwischenschritte
 * @return    array
 */
function gradient($start, $end, $steps=16) {
 
	if( (strlen($start) != 6) || (strlen($end) != 6) ) {
		return false;
	}
 
	$s[0] = hexdec(substr($start, 0, 2));
	$s[1] = hexdec(substr($start, 2, 2));
	$s[2] = hexdec(substr($start, 4, 2));
 
	$e[0] = hexdec(substr($end, 0, 2));
	$e[1] = hexdec(substr($end, 2, 2));
	$e[2] = hexdec(substr($end, 4, 2));
 
	$diff[0] = $s[0] &gt; $e[0] ? ($s[0]-$e[0])/($steps-1) : ($e[0]-$s[0])/($steps-1);
	$diff[1] = $s[1] &gt; $e[1] ? ($s[1]-$e[1])/($steps-1) : ($e[1]-$s[1])/($steps-1);
	$diff[2] = $s[2] &gt; $e[2] ? ($s[2]-$e[2])/($steps-1) : ($e[2]-$s[2])/($steps-1);
 
	$r[0] = $s[0];
	$g[0] = $s[1];
	$b[0] = $s[2];
 
	for($i=1; $i&lt;=$steps-1; $i++) {
 
		$r[$i] = $s[0] &gt; $e[0] ? $s[0] -= $diff[0] : $s[0] += $diff[0];
		$r[$i] = round($r[$i]);
 
		$g[$i] = $s[1] &gt; $e[1] ? $s[1] -= $diff[1] : $s[1] += $diff[1];
		$g[$i] = round($g[$i]);
 
		$b[$i] = $s[2] &gt; $e[2] ? $s[2] -= $diff[2] : $s[2] += $diff[2];
		$b[$i] = round($b[$i]);
 
	}
 
	$r[$steps] = $e[0];
	$g[$steps] = $e[1];
	$b[$steps] = $e[2];
 
	$count = count($r);
 
	for($i=0; $i&lt;$count; $i++) {
		$color[$i] = str_pad(dechex($r[$i]), 2, '0', STR_PAD_LEFT) . 
str_pad(dechex($g[$i]), 2, '0', STR_PAD_LEFT) . 
str_pad(dechex($b[$i]), 2, '0', STR_PAD_LEFT);
	}
 
	return $color;
 
}
?>

http://manuelbieh.de/www/blog/wp-content/uploads/2008/01/gradient.phps

Wie das aussehen kann, kann man sich hier anschauen:
http://manuelbieh.de/www/blog/wp-content/uploads/2008/01/gradient.examples.php
(http://manuelbieh.de/www/blog/wp-content/uploads/2008/01/gradient.examples.phps)

Viel Spaß damit.

2 Kommentare zu “Linearer Farbverlauf für Tabellen”

  1. Grafik: GravatarPHP Usergroup Munich » Blog Archive » Farbverläufe mit PHP:

    […] Bieh hat just einen cleveren Beitrag bzw. ein PHP-Codesnippet veröffentlicht, mit dem er zeigt wie man Elemente (zB. Tabellenzellen) mit Farbverläufen versehen […]

  2. Grafik: GravatarPat:

    Hallo Manuel,

    ich bin nur Laie, deshalb entschuldige bitte meine Frage:

    mich interessiert dieser gradientsnippet – nur leider gibt es enie fehlermeldung in line 33…. ausserdem: wo gebe ich die farbwerte ein…?

    vielen Dank und weiter so!

    Pat

Die Trackback-URL lautet