Перевод цвета из HEX в RGB и обратно с помощью php

Введение

Перевод цвета из HEX в RGB и обратно с помощью php В этой статье я приведу пример двух функций, которые позволяют осуществлять перевод цвета из 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);
Рассказать друзьям:


Оценить:
(Пока оценок нет)

Перевод цвета из HEX в RGB и обратно с помощью php: 1 комментарий

  1. Спасибо конечно! Но криво они работают…
    не верный цвет на выходе, а именно:

    Эта функция:
    // перевод цвета из 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code