Перевод цвета из RGB в HEX и обратно через PHP
В рецепте приведен пример перевода кода цвета из RGB в HEX.
// перевод цвета из RGB в HEX function rgbToHex($color) { $red = dechex($color[0]); $green = dechex($color[1]); $blue = dechex($color[2]); return "#" . $red . $green . $blue; } // пример использования $colorRgb = array(125, 255, 0); $result = rgbToHex($colorRgb); var_dump($result);
И обратное преобразование, ниже приведен пример перевода кода цвета из HEX в RGB.
// перевод цвета из HEX в RGB function hexToRgb($color) { // проверяем наличие # в начале, // если есть, то отрезаем ее if ($color[0] == '#') { $color = substr($color, 1); } // разбираем строку на массив if (strlen($color) == 6) { // если hex цвет в полной форме - 6 символов list($red, $green, $blue) = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] ); } elseif (strlen($cvet) == 3) { // если hex цвет в сокращенной // форме - 3 символа list($red, $green, $blue) = array( $color[0]. $color[0], $color[1]. $color[1], $color[2]. $color[2] ); }else{ return false; } // переводим шестнадцатеричные числа в десятичные $red = hexdec($red); $green = hexdec($green); $blue = hexdec($blue); // вернем результат return array( 'red' => $red, 'green' => $green, 'blue' => $blue ); } // пример использования $colorHex = '#FFAA00'; $result = hexToRgb($colorHex); var_dump($result);
Из книги «128 рецептов php»