Pop\Color\Convert::rgbToHsb PHP Метод

rgbToHsb() публичный статический Метод

Method to convert an integer RGB object to an HSB object
public static rgbToHsb ( Rgb $rgb ) : Hsb
$rgb Pop\Color\Space\Rgb
Результат Pop\Color\Space\Hsb
    public static function rgbToHsb(Space\Rgb $rgb)
    {
        // Calculate the hue.
        $r = $rgb->getRed();
        $g = $rgb->getGreen();
        $b = $rgb->getBlue();
        $min = min($r, min($g, $b));
        $max = max($r, max($g, $b));
        $delta = $max - $min;
        $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;
        }
        // Calculate the saturation and brightness.
        $r = $rgb->getRed() / 255;
        $g = $rgb->getGreen() / 255;
        $b = $rgb->getBlue() / 255;
        $max = max($r, $g, $b);
        $min = min($r, $g, $b);
        $b = $max;
        $d = $max - $min;
        $s = $d == 0 ? 0 : $d / $max;
        return new Space\Hsb(round($h * 360), round($s * 100), round($b * 100));
    }