Skip to content

Instantly share code, notes, and snippets.

@alexmustin
Created April 25, 2019 23:42
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexmustin/82b084d22ff52e9f043df295baa38cef to your computer and use it in GitHub Desktop.
Save alexmustin/82b084d22ff52e9f043df295baa38cef to your computer and use it in GitHub Desktop.
PHP function to Convert Hex Colors to RGBA
<?php
//* Function to convert Hex colors to RGBA
function hex2rgba( $color, $opacity = false ) {
$defaultColor = 'rgb(0,0,0)';
// Return default color if no color provided
if ( empty( $color ) ) {
return $defaultColor;
}
// Ignore "#" if provided
if ( $color[0] == '#' ) {
$color = substr( $color, 1 );
}
// Check if color has 6 or 3 characters, 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 hex values to rgb values
$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;
}
/*
* Example Usage:
* $mycolor = '#ff0000';
* $rgb = hex2rgba($mycolor);
* $rgba = hex2rgba($mycolor, 0.5);
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment