function _color_rgb2hsl

Same name in other branches
  1. 9 core/modules/color/color.module \_color_rgb2hsl()
  2. 8.9.x core/modules/color/color.module \_color_rgb2hsl()

Converts an RGB triplet to HSL.

1 call to _color_rgb2hsl()
_color_shift in modules/color/color.module
Shifts a given color, using a reference pair and a target blend color.

File

modules/color/color.module, line 793

Code

function _color_rgb2hsl($rgb) {
    $r = $rgb[0];
    $g = $rgb[1];
    $b = $rgb[2];
    $min = min($r, min($g, $b));
    $max = max($r, max($g, $b));
    $delta = $max - $min;
    $l = ($min + $max) / 2;
    $s = 0;
    if ($l > 0 && $l < 1) {
        $s = $delta / ($l < 0.5 ? 2 * $l : 2 - 2 * $l);
    }
    $h = 0;
    if ($delta > 0) {
        if ($max == $r && $max != $g) {
            $h += ($g - $b) / $delta;
        }
        if ($max == $g && $max != $b) {
            $h += 2 + ($b - $r) / $delta;
        }
        if ($max == $b && $max != $r) {
            $h += 4 + ($r - $g) / $delta;
        }
        $h /= 6;
    }
    return array(
        $h,
        $s,
        $l,
    );
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.