Перевод цвета из 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»

