3v4l.org

run code in 300+ PHP versions simultaneously
<?php function ColorLuminance($hex, $lum) { // validate hex string $hex = preg_replace("/[^0-9a-f]/i", "", $hex); if (strlen($hex) < 6) { $hex = $hex[0] + $hex[0] + $hex[1] + $hex[1] + $hex[2] + $hex[2]; } // convert to decimal and change luminosity $rgb = "#"; for ($i = 0; $i < 3; $i++) { $c = base_convert(substr($hex, $i * 2, 2), 16, 10); $c = base_convert((round(min(max(0, floatval($c . ($c * $lum))),255))), 10, 16); $rgb .= substr('00' . $c, strlen($c)); } return $rgb; } echo ColorLuminance("#69c", 0) . "\n"; // returns "#6699cc" echo ColorLuminance("6699CC", 0.2) . "\n";// "#7ab8f5" - 20% lighter echo ColorLuminance("69C", -0.5) . "\n";// "#334d66" - 50% darker echo ColorLuminance("000", 1) . "\n";// "#000000" - true black cannot be made lighter!

preferences:
36.62 ms | 402 KiB | 5 Q