/// <summary> /// Converts from a Argb(system) color to CYMK /// </summary> public static Cymk ToCymk(Color value) { Cymk cmyk = new Cymk(); cmyk.Alpha = value.Alpha; double low = 1f; cmyk.Cyan = (double)(255 - value.Red) / 255; if (low > cmyk.Cyan) { low = cmyk.Cyan; } cmyk.Magenta = (double)(255 - value.Green) / 255; if (low > cmyk.Magenta) { low = cmyk.Magenta; } cmyk.Yellow = (double)(255 - value.Blue) / 255; if (low > cmyk.Yellow) { low = cmyk.Yellow; } if (low > 0.0) { cmyk.Black = low; } return(cmyk); }
/// <summary> /// Converts from a CYMK color to Argb (system) color /// </summary> public static Color ToColor(Cymk value) { byte red, green, blue; red = Round(255 - (255 * value.Cyan)); green = Round(255 - (255 * value.Magenta)); blue = Round(255 - (255 * value.Yellow)); return(new Color(value.Alpha, red, green, blue)); }
/// <summary> /// Create a new color in CYMK colorspace /// </summary> /// <param name="cyan">cyan component. Range: [0, 1]</param> /// <param name="magenta">yellow component. Range: [0, 1]</param> /// <param name="yellow">magenta component. Range: [0, 1]</param> /// <param name="black">black component. Range: [0, 1]</param> /// <param name="alpha">Alpha component. Range: [0, 255]</param> public static Cymk CreateCymk(double cyan, double yellow, double magenta, double black, int alpha) { //range checking //cyan if (cyan > 1) { cyan = 1; } else if (cyan < 0) { cyan = 0; } //yellow if (yellow > 1) { yellow = 1; } else if (yellow < 0) { yellow = 0; } //magenta if (magenta > 1) { magenta = 1; } else if (magenta < 0) { magenta = 0; } //alpha if (alpha > 255) { alpha = 255; } else if (alpha < 0) { alpha = 0; } Cymk result = new Cymk(cyan, yellow, magenta, black); result.Alpha = (byte)alpha; return(result); }
/// <summary> /// Converts from a Argb(system) color to CYMK /// </summary> public static Cymk ToCymk(Color value) { Cymk cmyk = new Cymk(); cmyk.Alpha = value.Alpha; double low = 1f; cmyk.Cyan = (double)(255 - value.Red) / 255; if (low > cmyk.Cyan) low = cmyk.Cyan; cmyk.Magenta = (double)(255 - value.Green) / 255; if (low > cmyk.Magenta) low = cmyk.Magenta; cmyk.Yellow = (double)(255 - value.Blue) / 255; if (low > cmyk.Yellow) low = cmyk.Yellow; if (low > 0.0) { cmyk.Black = low; } return cmyk; }
/// <summary> /// Converts from a CYMK color to Argb (system) color /// </summary> public static Color ToColor(Cymk value) { byte red, green, blue; red = Round(255 - (255 * value.Cyan)); green = Round(255 - (255 * value.Magenta)); blue = Round(255 - (255 * value.Yellow)); return new Color(value.Alpha, red, green, blue); }