Same name in other branches
- 8.x-2.x src/ColorHSL.php \Drupal\color_field\ColorHSL::toRgb()
Overrides ColorInterface::toRgb
Fichier
-
src/
ColorHSL.php, line 123
Classe
- ColorHSL
- RGB represents the RGB color format.
Namespace
Drupal\color_fieldCode
public function toRgb() : ColorRGB {
$h = $this->getHue();
$s = $this->getSat();
$l = $this->getLum();
$h /= 60;
if ($h < 0) {
$h = 6 - fmod(-$h, 6);
}
$h = fmod($h, 6);
$s = max(0, min(1, $s / 100));
$l = max(0, min(1, $l / 100));
$c = (1 - abs(2 * $l - 1)) * $s;
$x = $c * (1 - abs(fmod($h, 2) - 1));
if ($h < 1) {
$r = $c;
$g = $x;
$b = 0;
}
elseif ($h < 2) {
$r = $x;
$g = $c;
$b = 0;
}
elseif ($h < 3) {
$r = 0;
$g = $c;
$b = $x;
}
elseif ($h < 4) {
$r = 0;
$g = $x;
$b = $c;
}
elseif ($h < 5) {
$r = $x;
$g = 0;
$b = $c;
}
else {
$r = $c;
$g = 0;
$b = $x;
}
$m = $l - $c / 2;
$r = round(($r + $m) * 255);
$g = round(($g + $m) * 255);
$b = round(($b + $m) * 255);
return new ColorRGB((int) $r, (int) $g, (int) $b, $this->getOpacity());
}