Created
April 25, 2019 23:42
-
-
Save alexmustin/82b084d22ff52e9f043df295baa38cef to your computer and use it in GitHub Desktop.
PHP function to Convert Hex Colors to RGBA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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