Niekedy je potrebné získať farbu vo formáte rgb(). Rgb je definícia farby pomocou – red green blue, po našom červená zelená a modrá. Rozsah pre jednotlivú farbu je 0 – 255. Pomocou ich kombinácie sa vytvára finálna farba. Farba, definovaná vo formáte #hex (čo je nakoniec tiež iba definícia týchto troch farieb, ale v hexadecimálnom formáte, v rozsahu 00 – ff, pre každú z nich), sá dá pomocou tejto funkcie previesť na rgb() formát.
function hex2rgb( $color ) {
// ak farba obsahuje '#' - treba ju odstrániť
if ( $color[0] == '#' ) {
$color = substr( $color, 1 );
}
// vytvorenie poľa a priradenie k premenným s hodnotami pre každú farbu
if ( strlen( $color ) == 6 ) {
list( $r, $g, $b ) = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
} elseif ( strlen( $color ) == 3 ) {
list( $r, $g, $b ) = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
} else {
return false;
}
// prevod z hexadecimálneho formátu na decimálnu hodnotu
$r = hexdec( $r );
$g = hexdec( $g );
$b = hexdec( $b );
// vráti pole s hodnotami rgb
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}Funkcia má povinnú jednu premennú $color. Do funkcie sa posiela farba v #hex formáte, napríklad #ff0000 (alebo #f00 – čo je skrátený formát). Funkcia vráti asociované pole: array( 'red' => 255, 'green' => 0, 'blue' => 0 )
Jednoduchou zmenou, sa dá funkcia upraviť, aby vrátila hodnotu s transparentnosťou rgba(). V definícii je jedno číslo navyše, ktoré určuje transparentnosť v rozsaho 0 – 1.
function hex2rgb( $color, $t = 1 ) {
// ak farba obsahuje '#' - treba ju odstrániť
if ( $color[0] == '#' ) {
$color = substr( $color, 1 );
}
// vytvorenie poľa a priradenie k premenným s hodnotami pre každú farbu
if ( strlen( $color ) == 6 ) {
list( $r, $g, $b ) = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
} elseif ( strlen( $color ) == 3 ) {
list( $r, $g, $b ) = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
} else {
return false;
}
// prevod z hexadecimálneho formátu na decimálnu hodnotu
$r = hexdec( $r );
$g = hexdec( $g );
$b = hexdec( $b );
// vráti pole s hodnotami rgb
return array( 'red' => $r, 'green' => $g, 'blue' => $b, 'transparent' => $t );
}Do funkcie je pridaná nepovinná premenná $t (má preddefinovanú hodnotu na 1 – čo je farba bez transparentnosti). Pre danú premennú je teda rozsah 0 – 1 ( napríklad 0.5 je polovičná, 50% transparentnosť).

