1.20.x color.inc | public static Color::hexToRgb($hex) |
Parses a hexadecimal color string like '#abc' or '#aabbcc'.
Parameters
string $hex: The hexadecimal color string to parse.
Return value
array: An array containing the values for 'red', 'green', 'blue'.
Throws
\InvalidArgumentException
File
- includes/
color.inc, line 42
Class
- Color
- Performs color conversions.
Code
public static function hexToRgb($hex) {
if (!self::validateHex($hex)) {
throw new \InvalidArgumentException("'$hex' is not a valid hex value.");
}
// Ignore '#' prefixes.
$hex = ltrim($hex, '#');
// Convert shorhands like '#abc' to '#aabbcc'.
if (strlen($hex) == 3) {
$hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
}
$c = hexdec($hex);
return array(
'red' => $c >> 16 & 0xFF,
'green' => $c >> 8 & 0xFF,
'blue' => $c & 0xFF,
);
}