Converts RGB color arrays and RGB strings in CSS notation to lowercase simple colors like '#aabbcc'.
array|string $input: The value to convert. If the value is an array the first three elements will be used as the red, green and blue components. String values in CSS notation like '10, 20, 30' are also supported.
string The lowercase simple color representation of the given color.
public static function rgbToHex($input) {
// Remove named array keys if input comes from Color::hex2rgb().
if (is_array($input)) {
$rgb = array_values($input);
}
elseif (is_string($input)) {
preg_match('/(\\d+), ?(\\d+), ?(\\d+)/', $input, $rgb);
array_shift($rgb);
}
$out = 0;
foreach ($rgb as $k => $v) {
$out |= $v << 16 - $k * 8;
}
return '#' . str_pad(dechex($out), 6, 0, STR_PAD_LEFT);
}