Skip to content

Instantly share code, notes, and snippets.

@FreshLondon
Last active August 16, 2019 11:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FreshLondon/bad81534e7481530320d0cdb653bfdd9 to your computer and use it in GitHub Desktop.
Save FreshLondon/bad81534e7481530320d0cdb653bfdd9 to your computer and use it in GitHub Desktop.
Convert hexdec color string to rgb(a) string
<?
/* Convert hexdec color string to rgb(a) string */
function hex2rgba($color, $opacity = false) {
$default = 'rgb(0,0,0)';
//Return default if no color provided
if (empty($color)) return $default;
//Sanitize $color if "#" is provided
if ($color[0] == '#') {
$color = substr($color, 1);
}
//Check if color has 6 or 3 characters and get values
if (strlen($color) == 6) {
$hex = array(
$color[0].$color[1],
$color[2].$color[3],
$color[4].$color[5]
);
}
elseif (strlen($color) == 3) {
$hex = array(
$color[0].$color[0],
$color[1].$color[1],
$color[2].$color[2]
);
}
else {
return $default;
}
//Convert hexadec to rgb
$rgb = array_map('hexdec', $hex);
//Check if opacity is set(rgba or rgb)
if ($opacity) {
if (abs($opacity) > 1) $opacity = 1.0;
$output = 'rgba('.implode(",", $rgb).','.$opacity.')';
}
else {
$output = 'rgb('.implode(",", $rgb).')';
}
//Return rgb(a) color string
return $output;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment