Linearer Farbverlauf für Tabellen
10.01.2008
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] > $e[0] ? ($s[0]-$e[0])/($steps-1) : ($e[0]-$s[0])/($steps-1); $diff[1] = $s[1] > $e[1] ? ($s[1]-$e[1])/($steps-1) : ($e[1]-$s[1])/($steps-1); $diff[2] = $s[2] > $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<=$steps-1; $i++) { $r[$i] = $s[0] > $e[0] ? $s[0] -= $diff[0] : $s[0] += $diff[0]; $r[$i] = round($r[$i]); $g[$i] = $s[1] > $e[1] ? $s[1] -= $diff[1] : $s[1] += $diff[1]; $g[$i] = round($g[$i]); $b[$i] = $s[2] > $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<$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.
Ein Kommentar zu “Linearer Farbverlauf für Tabellen”
Die Trackback-URL lautet





























Januar 10th, 2008 at 11:42
[...] 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 [...]