Введение
В этой статье я приведу пример двух функций, которые позволяют осуществлять перевод цвета из HEX в RGB и обратно. Эти функции могут быть полезны при работе с графикой, поскольку не всегда сразу можно получить цвет в нужном виде.
Перевод цвета из HEX в RGB и обратно с помощью php. Код
Первая функция, позволяет осуществлять перевод цвета из 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
);
}
Вторая функция работает в обратном направлении:
// перевод цвета из RGB в HEX
function rgbToHex($color) {
$red = dechex($color[0]);
$green = dechex($color[1]);
$blue = dechex($color[2]);
return "#" . $red . $green . $blue;
}
И пример использования:
$colorHex = '#FFAA00'; $result = hexToRgb($colorHex); var_dump($result); $colorRgb = array(255, 0, 0); $result = rgbToHex($colorRgb); var_dump($result);

Спасибо конечно! Но криво они работают…
не верный цвет на выходе, а именно:
Эта функция:
// перевод цвета из RGB в HEX
function rgbToHex($color) {
$red = dechex($color[0]);
$green = dechex($color[1]);
$blue = dechex($color[2]);
return «#». $red . $green . $blue;
}
Тестируем:
$colorRgb = array(255, 0, 0);
$result_HEX = rgbToHex($colorRgb);
На выходе имеем — не корректное значение: result_HEX: #ff00