• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/hook/page/theme.php
  • Класс: BitrixLandingHookPageTheme
  • Вызов: Theme::convertRgbToHsl
static function convertRgbToHsl(int $red, int $green, int $blue): array
{
	$red /= 255;
	$green /= 255;
	$blue /= 255;
	$max = max($red, $green, $blue);
	$min = min($red, $green, $blue);
	$lightness = ($max + $min) / 2;
	$d = $max - $min;
	if($d == 0)
	{
		$hue = $saturation = 0;
	}
	else
	{
		$hue = 0;
		$saturation = $d / (1 - abs(2 * $lightness - 1));
		switch($max)
		{
			case $red:
				$hue = 60 * fmod((($green - $blue) / $d), 6);
				if ($blue > $green)
				{
					$hue += 360;
				}
				break;

			case $green:
				$hue = 60 * (($blue - $red) / $d + 2);
				break;

			case $blue:
				$hue = 60 * (($red - $green) / $d + 4);
				break;

			default:
				break;
		}
	}

	return [
		round($hue, 2),
		round($saturation, 2) * 100,
		round($lightness, 2) * 100,
	];
}