Cómo convertir de hexadecimal a RGB y de RGB a hexadecimal utilizando PHP

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

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP