Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
 /// <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;
 }
Beispiel #5
0
 /// <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;
 }
Beispiel #6
0
 /// <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;
 }
Beispiel #7
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.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;
 }
Beispiel #8
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 - 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;
 }
Beispiel #9
0
 /// <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)
 {
 }
Beispiel #10
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)
 {
 }
Beispiel #11
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;
 }
Beispiel #12
0
 /// <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)
 {
 }
Beispiel #13
0
 /// <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;
 }
Beispiel #14
0
 /// <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;
 }
Beispiel #15
0
 /// <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;
 }
Beispiel #16
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.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;
 }
Beispiel #17
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.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;
 }
Beispiel #18
0
 /// <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)
 {
 }
Beispiel #19
0
 /// <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)
 {
 }
Beispiel #20
0
 /// <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)
 {
 }
Beispiel #21
0
 /// <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)
 {
 }
Beispiel #22
0
 /// <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)
 {
 }
Beispiel #23
0
 /// <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)
 {
 }
Beispiel #24
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)
 {
 }
Beispiel #25
0
 /// <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)
 {
 }
Beispiel #26
0
 /// <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)
 {
 }
Beispiel #27
0
 /// <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)
 {
 }
Beispiel #28
0
 /// <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;
 }
Beispiel #29
0
 /// <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)
 {
 }
Beispiel #30
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)
 {
 }
Beispiel #31
0
 /// <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;
 }
Beispiel #32
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="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;
 }
Beispiel #33
0
 /// <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;
 }
Beispiel #34
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;
 }
Beispiel #35
0
 /// <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)
 {
 }
Beispiel #36
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;
 }
Beispiel #37
0
 /// <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)
 {
 }
Beispiel #38
0
 /// <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;
 }
Beispiel #39
0
        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();
            }
        }
Beispiel #40
0
 /// <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)
 {
 }
Beispiel #41
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.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;
 }
Beispiel #42
0
 /// <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)
 {
 }
Beispiel #43
0
 /// <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;
 }
Beispiel #44
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 - 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;
 }
Beispiel #45
0
 /// <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)
 {
 }
Beispiel #46
0
 /// <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)
 {
 }
Beispiel #47
0
 /// <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)
 {
 }
Beispiel #48
0
 /// <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)
 {
 }
Beispiel #49
0
 /// <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)
 {
 }
Beispiel #50
0
 /// <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)
 {
 }
Beispiel #51
0
 /// <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)
 {
 }
Beispiel #52
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)
 {
 }
Beispiel #53
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.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");
            }
        }
Beispiel #55
0
 /// <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)
 {
 }
Beispiel #56
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;
 }
Beispiel #57
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="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;
 }
Beispiel #58
0
 /// <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");
            }
        }
Beispiel #60
0
 /// <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)
 {
 }