PHP: Convert RGB to hex and back
Published:
Just another note to self, in case I need it again:
/**
* #rrggbb or #rgb to [r, g, b]
*/
function hex2rgb(string $hex): array
{
$hex = ltrim($hex, '#');
if(strlen($hex) == 3)
return [
hexdec($hex[0].$hex[0]),
hexdec($hex[1].$hex[1]),
hexdec($hex[2].$hex[2]),
];
else
return [
hexdec($hex[0].$hex[1]),
hexdec($hex[2].$hex[3]),
hexdec($hex[4].$hex[5]),
];
}
/**
* [r, g, b] to #rrggbb
*/
function rgb2hex(array $rgb): string
{
return sprintf('#%02x%02x%02x', $rgb[0], $rgb[1], $rgb[2]);
}