PHP-Funktion zur Berechnung einer Komplementärfarbe
Ab und an lässt man als Programmierer den Anwender eine Farbe auswählen.
Dazu gibt es diverse Colorpicker, mit denen das für den armen DAU recht einfach zu handhaben ist. Arbeitet man nun mit dieser Farbe, so bracht man manchmal eine zweite Farbe, in der man beispielsweise Text auf der ausgewählten Farbe anzeigen kann. Dazu eignet sich die Komplementärfarbe, die man sich leicht errechnen kann. Ich habe dazu ein wenig Code auf http://knowpapa.com/complementary-color/ gefunden, den ich ein wenig verbessert habe. Als Eingabe wird der Hexcode der Farbe mit oder ohne # erwartet und entsprechend wird die Komplementärfarbe mit oder ohne # zurückgegeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /** * Generates the complementary color for a given color * * @param $color * @return string */ function complementary($color) { $leadingHash = false; //clear whitespaces just to be shure $color = trim($color); //cut leading # if (strpos($color, "#") !== false) { $color = substr($color, 1); $leadingHash = true; } //check if valid color string if (preg_match('/^[A-Fa-f0-9]+$/', $color)== 'false') { return $leadingHash ? '#' . $color : $color; } $r1 = dechex((15 - (hexdec($color[0])))); $r2 = dechex((15 - (hexdec($color[1])))); $g1 = dechex((15 - (hexdec($color[2])))); $g2 = dechex((15 - (hexdec($color[3])))); $b1 = dechex((15 - (hexdec($color[4])))); $b2 = dechex((15 - (hexdec($color[5])))); $complementary = $r1 . $r2 . $g1 . $g2 . $b1 . $b2; return $leadingHash ? '#' . $complementary : $complementary; } |
Neueste Kommentare