Pop\Color\Convert::rgbToCmyk PHP Method

rgbToCmyk() public static method

Method to convert an integer RGB object to a CMYK object
public static rgbToCmyk ( Rgb $rgb ) : Cmyk
$rgb Pop\Color\Space\Rgb
return Pop\Color\Space\Cmyk
    public static function rgbToCmyk(Space\Rgb $rgb)
    {
        $K = 1;
        // Calculate CMY.
        $cyan = 1 - $rgb->getRed() / 255;
        $magenta = 1 - $rgb->getGreen() / 255;
        $yellow = 1 - $rgb->getBlue() / 255;
        // Calculate K.
        if ($cyan < $K) {
            $K = $cyan;
        }
        if ($magenta < $K) {
            $K = $magenta;
        }
        if ($yellow < $K) {
            $K = $yellow;
        }
        if ($K == 1) {
            $cyan = 0;
            $magenta = 0;
            $yellow = 0;
        } else {
            $cyan = round(($cyan - $K) / (1 - $K) * 100);
            $magenta = round(($magenta - $K) / (1 - $K) * 100);
            $yellow = round(($yellow - $K) / (1 - $K) * 100);
        }
        $black = round($K * 100);
        return new Space\Cmyk($cyan, $magenta, $yellow, $black);
    }