/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> public ColorHSx(RGBSpaceName Space, double H, double S) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite; this.H = H; this.S = S; }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0 - 65535)</param> public UColorHSx(RGBSpaceName Space, ushort H, ushort S) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.H = H; this.S = S; }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> public BColorHSx(RGBSpaceName Space, byte H, byte S) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.H = H; this.S = S; }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public BColorRGB(RGBSpaceName Space, byte R, byte G, byte B, bool IsLinear) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.R = R; this.G = G; this.B = B; this.IsLinear = IsLinear; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 to 255)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 to 255)</param> /// <param name="Cr">Red-Green Chrominance-value (0 to 255)</param> /// <param name="Space">The colorspace this color is in</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public BColorYCbCr(YCbCrSpaceName Space, RGBSpaceName BaseSpace, byte Y, byte Cb, byte Cr) : base() { this.Y = Y; this.Cb = Cb; this.Cr = Cr; this.Space = YCbCrColorspace.GetColorspace(Space); this.BaseSpace = RGBColorspace.GetColorspace(BaseSpace); wp = this.Space.ReferenceWhite.Name; }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public UColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B, bool IsLinear) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.R = R; this.G = G; this.B = B; this.IsLinear = IsLinear; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> /// <param name="L">Lightness (0.0 - 1.0)</param> public ColorHSL(RGBSpaceName Space, double H, double S, double L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> /// <param name="L">Lightness (0 - 255)</param> public BColorHSL(RGBSpaceName Space, byte H, byte S, byte L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="BaseSpace">The colorspace this color is based on</param> public BColorYCbCr(RGBSpaceName BaseSpace) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, 0, 0, 0) { }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 - 65535)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 - 65535)</param> /// <param name="Cr">Red-Green Chrominance-value (0 - 65535)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public UColorYCbCr(RGBSpaceName BaseSpace, ushort Y, ushort Cb, ushort Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> /// <param name="V">Value (0 - 255)</param> public BColorHSV(RGBSpaceName Space, byte H, byte S, byte V) : base(Space, H, S) { this.V = V; }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B, bool IsLinear) : this(Space, R / (double)ushort.MaxValue, G / (double)ushort.MaxValue, B / (double)ushort.MaxValue, IsLinear) { }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0.0 - 1.0)</param> /// <param name="G">The green value (0.0 - 1.0)</param> /// <param name="B">The blue value (0.0 - 1.0)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, double R, double G, double B, bool IsLinear) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite; this.R = R; this.G = G; this.B = B; this.IsLinear = IsLinear; }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public ColorHSV(RGBSpaceName Space) : base(Space) { this.V = V; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public ColorHSL(RGBSpaceName Space) : base(Space) { this.L = L; }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0 - 65535)</param> /// <param name="V">Value (0 - 65535)</param> public UColorHSV(RGBSpaceName Space, ushort H, ushort S, ushort V) : base(Space, H, S) { this.V = V; }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> /// <param name="V">Value (0.0 - 1.0)</param> public ColorHSV(RGBSpaceName Space, double H, double S, double V) : base(Space, H, S) { this.V = V; }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0.0 - 1.0)</param> /// <param name="G">The green value (0.0 - 1.0)</param> /// <param name="B">The blue value (0.0 - 1.0)</param> public ColorRGB(RGBSpaceName Space, double R, double G, double B) : this(Space, R, G, B, false) { }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, byte R, byte G, byte B, bool IsLinear) : this(Space, R / (double)byte.MaxValue, G / (double)byte.MaxValue, B / (double)byte.MaxValue, IsLinear) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> public ColorRGB(RGBSpaceName Space, byte R, byte G, byte B) : this(Space, R / (double)byte.MaxValue, G / (double)byte.MaxValue, B / (double)byte.MaxValue, false) { }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B, bool IsLinear) : this(Space, R / (double)ushort.MaxValue, G / (double)ushort.MaxValue, B / (double)ushort.MaxValue, IsLinear) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> public ColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B) : this(Space, R / (double)ushort.MaxValue, G / (double)ushort.MaxValue, B / (double)ushort.MaxValue, false) { }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public ColorHSx(RGBSpaceName Space) : this(Space, 0, 0) { }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0.0 - 1.0)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0.0 - 1.0)</param> /// <param name="Cr">Red-Green Chrominance-value (0.0 - 1.0)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public ColorYCbCr(RGBSpaceName BaseSpace, double Y, double Cb, double Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, bool IsLinear) : this(Space, 0, 0, 0, IsLinear) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> public UColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B) : this(Space, R, G, B, false) { }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public ColorRGB(RGBSpaceName Space, byte R, byte G, byte B, bool IsLinear) : this(Space, R / (double)byte.MaxValue, G / (double)byte.MaxValue, B / (double)byte.MaxValue, IsLinear) { }
/// <summary> /// Creates a new instance of a RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> /// <param name="IsLinear">States if the given values are linear or not</param> public UColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B, bool IsLinear) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.R = R; this.G = G; this.B = B; this.IsLinear = IsLinear; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public ColorYCbCr(YCbCrSpaceName Space, RGBSpaceName BaseSpace) : this(Space, BaseSpace, 0, 0, 0) { }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 - 65535)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 - 65535)</param> /// <param name="Cr">Red-Green Chrominance-value (0 - 65535)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public UColorYCbCr(RGBSpaceName BaseSpace, ushort Y, ushort Cb, ushort Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public BColorHSV(RGBSpaceName Space) : base(Space) { this.V = V; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 - 65535)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 - 65535)</param> /// <param name="Cr">Red-Green Chrominance-value (0 - 65535)</param> /// <param name="Space">The colorspace this color is in</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public UColorYCbCr(YCbCrSpaceName Space, RGBSpaceName BaseSpace, ushort Y, ushort Cb, ushort Cr) : base() { this.Y = Y; this.Cb = Cb; this.Cr = Cr; this.Space = YCbCrColorspace.GetColorspace(Space); this.BaseSpace = RGBColorspace.GetColorspace(BaseSpace); wp = this.Space.ReferenceWhite.Name; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public BColorHSL(RGBSpaceName Space) : base(Space) { this.L = L; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0 - 65535)</param> /// <param name="L">Lightness (0 - 65535)</param> public UColorHSL(RGBSpaceName Space, ushort H, ushort S, ushort L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public BColorYCbCr(YCbCrSpaceName Space, RGBSpaceName BaseSpace) : this(Space, BaseSpace, 0, 0, 0) { }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> /// <param name="V">Value (0 - 255)</param> public BColorHSV(RGBSpaceName Space, byte H, byte S, byte V) : base(Space, H, S) { this.V = V; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 to 255)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 to 255)</param> /// <param name="Cr">Red-Green Chrominance-value (0 to 255)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public BColorYCbCr(RGBSpaceName BaseSpace, byte Y, byte Cb, byte Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> public BColorHSx(RGBSpaceName Space, byte H, byte S) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite.Name; this.H = H; this.S = S; }
private Color GetToColor() { RGBSpaceName cn = (RGBSpaceName)ColorspaceToDroDo.SelectedIndex; switch ((ColorModel)ColorToDroDo.SelectedIndex) { case ColorModel.CIELab: return(new ColorLab(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CIELCHab: return(new ColorLCHab(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CIELCHuv: return(new ColorLCHuv(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CIELuv: return(new ColorLuv(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CIEXYZ: return(new ColorXYZ(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CIEYxy: return(new ColorYxy(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0], ToValues[1], ToValues[2])); case ColorModel.Gray: return(new ColorGray(new Whitepoint((WhitepointName)RefWhiteToDroDo.SelectedIndex), ToValues[0])); case ColorModel.LCH99: return(new ColorLCH99(ToValues[0], ToValues[1], ToValues[2])); case ColorModel.LCH99b: return(new ColorLCH99b(ToValues[0], ToValues[1], ToValues[2])); case ColorModel.LCH99c: return(new ColorLCH99c(ToValues[0], ToValues[1], ToValues[2])); case ColorModel.LCH99d: return(new ColorLCH99d(ToValues[0], ToValues[1], ToValues[2])); case ColorModel.HSL: if (cn == RGBSpaceName.ICC) { return(new ColorHSL(ToICC, ToValues[0], ToValues[1], ToValues[2])); } else { return(new ColorHSL(cn, ToValues[0], ToValues[1], ToValues[2])); } case ColorModel.HSV: if (cn == RGBSpaceName.ICC) { return(new ColorHSV(ToICC, ToValues[0], ToValues[1], ToValues[2])); } else { return(new ColorHSV(cn, ToValues[0], ToValues[1], ToValues[2])); } case ColorModel.RGB: if (cn == RGBSpaceName.ICC) { return(new ColorRGB(ToICC, ToValues[0], ToValues[1], ToValues[2])); } else { return(new ColorRGB(cn, ToValues[0], ToValues[1], ToValues[2])); } case ColorModel.YCbCr: if ((YCbCrSpaceName)YCbCrSpaceToDroDo.SelectedIndex == YCbCrSpaceName.ICC) { return(new ColorYCbCr(ToYCbCrICC, ToValues[0], ToValues[1], ToValues[2])); } else if (cn != RGBSpaceName.ICC) { return(new ColorYCbCr((YCbCrSpaceName)YCbCrSpaceToDroDo.SelectedIndex, cn, ToValues[0], ToValues[1], ToValues[2])); } else { throw new NotSupportedException(); } case ColorModel.CMY: return(new ColorCMY(ToICC, ToValues[0], ToValues[1], ToValues[2])); case ColorModel.CMYK: return(new ColorCMYK(ToICC, ToValues[0], ToValues[1], ToValues[2], ToValues[3])); case ColorModel.Color2: case ColorModel.Color3: case ColorModel.Color4: case ColorModel.Color5: case ColorModel.Color6: case ColorModel.Color7: case ColorModel.Color8: case ColorModel.Color9: case ColorModel.Color10: case ColorModel.Color11: case ColorModel.Color12: case ColorModel.Color13: case ColorModel.Color14: case ColorModel.Color15: return(new ColorX(ToICC, ToValues)); default: throw new NotSupportedException(); } }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> public BColorRGB(RGBSpaceName Space, byte R, byte G, byte B) : this(Space, R, G, B, false) { }
/// <summary> /// Creates a new instance of a HSV Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> /// <param name="V">Value (0.0 - 1.0)</param> public ColorHSV(RGBSpaceName Space, double H, double S, double V) : base(Space, H, S) { this.V = V; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0 to 255)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0 to 255)</param> /// <param name="Cr">Red-Green Chrominance-value (0 to 255)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public BColorYCbCr(RGBSpaceName BaseSpace, byte Y, byte Cb, byte Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> public ColorHSx(RGBSpaceName Space, double H, double S) : base() { this.Space = RGBColorspace.GetColorspace(Space); wp = this.Space.ReferenceWhite; this.H = H; this.S = S; }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0 - 255)</param> /// <param name="S">Saturation (0 - 255)</param> /// <param name="L">Lightness (0 - 255)</param> public BColorHSL(RGBSpaceName Space, byte H, byte S, byte L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public ColorRGB(RGBSpaceName Space) : this(Space, 0, 0, 0, false) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public BColorRGB(RGBSpaceName Space) : this(Space, 0, 0, 0, false) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> public ColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B) : this(Space, R / (double)ushort.MaxValue, G / (double)ushort.MaxValue, B / (double)ushort.MaxValue, false) { }
/// <summary> /// Creates a new instance of a linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="IsLinear">States if the given values are linear or not</param> public BColorRGB(RGBSpaceName Space, bool IsLinear) : this(Space, 0, 0, 0, IsLinear) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> public ColorRGB(RGBSpaceName Space, byte R, byte G, byte B) : this(Space, R / (double)byte.MaxValue, G / (double)byte.MaxValue, B / (double)byte.MaxValue, false) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 255)</param> /// <param name="G">The green value (0 - 255)</param> /// <param name="B">The blue value (0 - 255)</param> public BColorRGB(RGBSpaceName Space, byte R, byte G, byte B) : this(Space, R, G, B, false) { }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0.0 - 1.0)</param> /// <param name="G">The green value (0.0 - 1.0)</param> /// <param name="B">The blue value (0.0 - 1.0)</param> public ColorRGB(RGBSpaceName Space, double R, double G, double B) : this(Space, R, G, B, false) { }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0.0 - 1.0)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0.0 - 1.0)</param> /// <param name="Cr">Red-Green Chrominance-value (0.0 - 1.0)</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public ColorYCbCr(RGBSpaceName BaseSpace, double Y, double Cb, double Cr) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, Y, Cb, Cr) { }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0.0 - 1.0)</param> /// <param name="L">Lightness (0.0 - 1.0)</param> public ColorHSL(RGBSpaceName Space, double H, double S, double L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Get a colorspace from the name /// </summary> /// <param name="name">The name of the colorspace</param> /// <returns>The named colorspace</returns> public static RGBColorspace GetColorspace(RGBSpaceName name) { switch (name) { case RGBSpaceName.AdobeRGB: return new AdobeRGB(); case RGBSpaceName.ProPhotoRGB: return new ProPhotoRGB(); case RGBSpaceName.sRGB: return new sRGB(); case RGBSpaceName.AppleRGB: return new AppleRGB(); case RGBSpaceName.BruceRGB: return new BruceRGB(); case RGBSpaceName.CIERGB: return new CIERGB(); case RGBSpaceName.NTSCRGB: return new NTSCRGB(); case RGBSpaceName.WideGamutRGB: return new WideGamutRGB(); case RGBSpaceName.BestRGB: return new BestRGB(); case RGBSpaceName.BetaRGB: return new BetaRGB(); case RGBSpaceName.ColorMatchRGB: return new ColorMatchRGB(); case RGBSpaceName.DonRGB4: return new DonRGB4(); case RGBSpaceName.EktaSpacePS5: return new EktaSpacePS5(); case RGBSpaceName.PAL_SECAMRGB: return new PAL_SECAMRGB(); case RGBSpaceName.SMPTE_C_RGB: return new SMPTE_C_RGB(); case RGBSpaceName.ICC: throw new Exception("ICC cannot be created without arguments"); default: throw new Exception("Colorspace not found"); } }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="BaseSpace">The colorspace this color is based on</param> public ColorYCbCr(RGBSpaceName BaseSpace) : this(ColorConverter.StandardYCbCrSpace, BaseSpace, 0, 0, 0) { }
/// <summary> /// Creates a new instance of a HSL Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="H">Hue (0.0 - 360.0)</param> /// <param name="S">Saturation (0 - 65535)</param> /// <param name="L">Lightness (0 - 65535)</param> public UColorHSL(RGBSpaceName Space, ushort H, ushort S, ushort L) : base(Space, H, S) { this.L = L; }
/// <summary> /// Creates a new instance of a YCbCr Color /// </summary> /// <param name="Y">Luma-value (0.0 - 1.0)</param> /// <param name="Cb">Blue-Yellow Chrominance-value (0.0 - 1.0)</param> /// <param name="Cr">Red-Green Chrominance-value (0.0 - 1.0)</param> /// <param name="Space">The colorspace this color is in</param> /// <param name="BaseSpace">The colorspace this color is based on</param> public ColorYCbCr(YCbCrSpaceName Space, RGBSpaceName BaseSpace, double Y, double Cb, double Cr) : base() { this.Y = Y; this.Cb = Cb; this.Cr = Cr; this.Space = YCbCrColorspace.GetColorspace(Space); this.BaseSpace = RGBColorspace.GetColorspace(BaseSpace); wp = this.Space.ReferenceWhite; }
/// <summary> /// Creates a new instance of a HSx Color /// </summary> /// <param name="Space">The colorspace this color is in</param> public BColorHSx(RGBSpaceName Space) : this(Space, 0, 0) { }
/// <summary> /// Get the name of the whitespace a colorspace is in /// </summary> /// <param name="name">The name of the colorspace</param> /// <returns>The name of the whitepoint</returns> public static WhitepointName GetWhitepointName(RGBSpaceName name) { switch (name) { case RGBSpaceName.AdobeRGB: return WhitepointName.D65; case RGBSpaceName.ProPhotoRGB: return WhitepointName.D50; case RGBSpaceName.sRGB: return WhitepointName.D65; case RGBSpaceName.AppleRGB: return WhitepointName.D65; case RGBSpaceName.BruceRGB: return WhitepointName.D65; case RGBSpaceName.CIERGB: return WhitepointName.E; case RGBSpaceName.NTSCRGB: return WhitepointName.C; case RGBSpaceName.WideGamutRGB: return WhitepointName.D50; case RGBSpaceName.BestRGB: return WhitepointName.D50; case RGBSpaceName.BetaRGB: return WhitepointName.D50; case RGBSpaceName.ColorMatchRGB: return WhitepointName.D50; case RGBSpaceName.DonRGB4: return WhitepointName.D50; case RGBSpaceName.EktaSpacePS5: return WhitepointName.D50; case RGBSpaceName.PAL_SECAMRGB: return WhitepointName.D65; case RGBSpaceName.SMPTE_C_RGB: return WhitepointName.D65; case RGBSpaceName.ICC: throw new Exception("Check ICC for whitepoint"); default: throw new Exception("Colorspace not found"); } }
/// <summary> /// Creates a new instance of a non-linear RGB Color /// </summary> /// <param name="Space">The colorspace this color is in</param> /// <param name="R">The red value (0 - 65535)</param> /// <param name="G">The green value (0 - 65535)</param> /// <param name="B">The blue value (0 - 65535)</param> public UColorRGB(RGBSpaceName Space, ushort R, ushort G, ushort B) : this(Space, R, G, B, false) { }