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] > $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.
Autor: Manuel
Veröffentlicht: 10.01.2008, 10:04 Uhr
Rubrik:
Tags:
Diskussion: 2 Kommentare
Social Media:
Veröffentlicht: 10.01.2008, 10:04 Uhr
Rubrik:
Tags:
Diskussion: 2 Kommentare
Social Media:
2 Kommentare 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 […]
Oktober 1st, 2011 at 09:26
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