En este artÃculo te explicaremos como convertir del código de color RGB a hexadecimal y de hexadecimal a RGB utilizando PHP. Para ello hemos creado una función de PHP para convertir el código de color de RGB a hexadecimal y viceversa. La función rgb2hex2rgb() es la que lleva a cabo esta operación.
Parámetros
La función rgb2hex2rgb() acepta solo un parámetro ($color) con dos tipos distintos de valor, o RGB o hexadecimal.
- $color => Obligatorio. Su valor varÃa dependiendo de lo que quieras convertir. Es decir, si es RGB tendrás que pasar a la función una cadena similar a 255,255,255 o 255 255 255 o 255.255.255. Y si quieres converir de hexadecimal a RGB, el valor que le tendrÃas que pasar serÃa similar a #FFFFFF o FFFFFF.
Valor de retorno
La función devuelve el código de color en formato RGB como un array si el parámetro $color tiene formato hexadecimal. Por el contrario, la función devuelve el código de color en formato hexadecimal como un string si el parámetro $color tiene formato RGB.
- RGB => Array( [r] => 255, [g] => 255, [b] => 255)
- HEX => #FFFFFF
Función rgb2hex2rgb()
/** * * Author: CodexWorld * Author URI: http://www.codexworld.com * Function Name: rgb2hex2rgb() * $color => HEX or RGB * Returns RGB or HEX color format depending on given value. * **/ function rgb2hex2rgb($color){ if(!$color) return false; $color = trim($color); $result = false; if(preg_match("/^[0-9ABCDEFabcdef#]+$/i", $color)){ $hex = str_replace('#','', $color); if(!$hex) return false; if(strlen($hex) == 3): $result['r'] = hexdec(substr($hex,0,1).substr($hex,0,1)); $result['g'] = hexdec(substr($hex,1,1).substr($hex,1,1)); $result['b'] = hexdec(substr($hex,2,1).substr($hex,2,1)); else: $result['r'] = hexdec(substr($hex,0,2)); $result['g'] = hexdec(substr($hex,2,2)); $result['b'] = hexdec(substr($hex,4,2)); endif; }elseif (preg_match("/^[0-9]+(,| |.)+[0-9]+(,| |.)+[0-9]+$/i", $color)){ $rgbstr = str_replace(array(',',' ','.'), ':', $color); $rgbarr = explode(":", $rgbstr); $result = '#'; $result .= str_pad(dechex($rgbarr[0]), 2, "0", STR_PAD_LEFT); $result .= str_pad(dechex($rgbarr[1]), 2, "0", STR_PAD_LEFT); $result .= str_pad(dechex($rgbarr[2]), 2, "0", STR_PAD_LEFT); $result = strtoupper($result); }else{ $result = false; } return $result; }
Uso
Para utilizar la función rgb2hex2rgb() tendrÃas que escribir algo como:
$hexString = rgb2hex2rgb('255,255,255'); $rgbArray = rgb2hex2rgb('#FFFFFF');
Fuente: codexworld.com