コード例 #1
0
        public static Color ToColor(HSB hsb)
        {
            int Mid;

            int    Max = ColorHelper.Round(hsb.Brightness * 255);
            int    Min = ColorHelper.Round((1.0 - hsb.Saturation) * (hsb.Brightness / 1.0) * 255);
            double q   = (double)(Max - Min) / 255;

            if (hsb.Hue >= 0 && hsb.Hue <= (double)1 / 6)
            {
                Mid = ColorHelper.Round(((hsb.Hue - 0) * q) * 1530 + Min);
                return(Color.FromArgb(Max, Mid, Min));
            }
            if (hsb.Hue <= (double)1 / 3)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - (double)1 / 6) * q) * 1530 + Max);
                return(Color.FromArgb(Mid, Max, Min));
            }
            if (hsb.Hue <= 0.5)
            {
                Mid = ColorHelper.Round(((hsb.Hue - (double)1 / 3) * q) * 1530 + Min);
                return(Color.FromArgb(Min, Max, Mid));
            }
            if (hsb.Hue <= (double)2 / 3)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - 0.5) * q) * 1530 + Max);
                return(Color.FromArgb(Min, Mid, Max));
            }
            if (hsb.Hue <= (double)5 / 6)
            {
                Mid = ColorHelper.Round(((hsb.Hue - (double)2 / 3) * q) * 1530 + Min);
                return(Color.FromArgb(Mid, Min, Max));
            }
            if (hsb.Hue <= 1.0)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - (double)5 / 6) * q) * 1530 + Max);
                return(Color.FromArgb(Max, Min, Mid));
            }
            return(Color.FromArgb(0, 0, 0));
        }
コード例 #2
0
        public static Color ToColor(HSB hsb)
        {
            int    num4;
            int    red  = Class30.smethod_4(hsb.Brightness * 255.0);
            int    blue = Class30.smethod_4(((1.0 - hsb.Saturation) * (hsb.Brightness / 1.0)) * 255.0);
            double num3 = ((double)(red - blue)) / 255.0;

            if ((hsb.Hue >= 0.0) && (hsb.Hue <= 0.16666666666666666))
            {
                num4 = Class30.smethod_4((((hsb.Hue - 0.0) * num3) * 1530.0) + blue);
                return(Color.FromArgb(red, num4, blue));
            }
            if (hsb.Hue <= 0.33333333333333331)
            {
                return(Color.FromArgb(Class30.smethod_4((-((hsb.Hue - 0.16666666666666666) * num3) * 1530.0) + red), red, blue));
            }
            if (hsb.Hue <= 0.5)
            {
                num4 = Class30.smethod_4((((hsb.Hue - 0.33333333333333331) * num3) * 1530.0) + blue);
                return(Color.FromArgb(blue, red, num4));
            }
            if (hsb.Hue <= 0.66666666666666663)
            {
                num4 = Class30.smethod_4((-((hsb.Hue - 0.5) * num3) * 1530.0) + red);
                return(Color.FromArgb(blue, num4, red));
            }
            if (hsb.Hue <= 0.83333333333333337)
            {
                return(Color.FromArgb(Class30.smethod_4((((hsb.Hue - 0.66666666666666663) * num3) * 1530.0) + blue), blue, red));
            }
            if (hsb.Hue <= 1.0)
            {
                num4 = Class30.smethod_4((-((hsb.Hue - 0.83333333333333337) * num3) * 1530.0) + red);
                return(Color.FromArgb(red, blue, num4));
            }
            return(Color.FromArgb(0, 0, 0));
        }
コード例 #3
0
 public void CMYKUpdate()
 {
     this.RGB = this.CMYK;
     this.HSB = this.CMYK;
 }
コード例 #4
0
 public void RGBUpdate()
 {
     this.HSB  = this.RGB;
     this.CMYK = this.RGB;
 }
コード例 #5
0
 public MyColor(Color color)
 {
     this.RGB  = color;
     this.HSB  = color;
     this.CMYK = color;
 }
コード例 #6
0
        public static HSB ToHSB(Color color)
        {
            HSB hsb = new HSB();

            int Max, Min;

            if (color.R > color.G)
            {
                Max = color.R; Min = color.G;
            }
            else
            {
                Max = color.G; Min = color.R;
            }
            if (color.B > Max)
            {
                Max = color.B;
            }
            else if (color.B < Min)
            {
                Min = color.B;
            }

            int Diff = Max - Min;

            hsb.Brightness = (double)Max / 255;

            if (Max == 0)
            {
                hsb.Saturation = 0;
            }
            else
            {
                hsb.Saturation = (double)Diff / Max;
            }

            double q;

            if (Diff == 0)
            {
                q = 0;
            }
            else
            {
                q = (double)60 / Diff;
            }

            if (Max == color.R)
            {
                if (color.G < color.B)
                {
                    hsb.Hue = (360 + q * (color.G - color.B)) / 360;
                }
                else
                {
                    hsb.Hue = q * (color.G - color.B) / 360;
                }
            }
            else if (Max == color.G)
            {
                hsb.Hue = (120 + q * (color.B - color.R)) / 360;
            }
            else if (Max == color.B)
            {
                hsb.Hue = (240 + q * (color.R - color.G)) / 360;
            }
            else
            {
                hsb.Hue = 0.0;
            }

            return(hsb);
        }
コード例 #7
0
        public static HSB ToHSB(Color color)
        {
            double num;
            int    r;
            int    g;
            HSB    hsb = new HSB();

            if (color.R > color.G)
            {
                r = color.R;
                g = color.G;
            }
            else
            {
                r = color.G;
                g = color.R;
            }
            if (color.B > r)
            {
                r = color.B;
            }
            else if (color.B < g)
            {
                g = color.B;
            }
            int num4 = r - g;

            hsb.Brightness = ((double)r) / 255.0;
            if (r == 0)
            {
                hsb.Saturation = 0.0;
            }
            else
            {
                hsb.Saturation = ((double)num4) / ((double)r);
            }
            if (num4 == 0)
            {
                num = 0.0;
            }
            else
            {
                num = 60.0 / ((double)num4);
            }
            if (r == color.R)
            {
                if (color.G < color.B)
                {
                    hsb.Hue = (360.0 + (num * (color.G - color.B))) / 360.0;
                    return(hsb);
                }
                hsb.Hue = (num * (color.G - color.B)) / 360.0;
                return(hsb);
            }
            if (r == color.G)
            {
                hsb.Hue = (120.0 + (num * (color.B - color.R))) / 360.0;
                return(hsb);
            }
            if (r == color.B)
            {
                hsb.Hue = (240.0 + (num * (color.R - color.G))) / 360.0;
                return(hsb);
            }
            hsb.Hue = 0.0;
            return(hsb);
        }
コード例 #8
0
ファイル: MyColors.cs プロジェクト: Andy-Yin/MY_OA_RM
        public static HSB ToHSB(Color color)
        {
            HSB hsb = new HSB();

            int Max, Min;

            if (color.R > color.G) { Max = color.R; Min = color.G; }
            else { Max = color.G; Min = color.R; }
            if (color.B > Max) Max = color.B;
            else if (color.B < Min) Min = color.B;

            int Diff = Max - Min;

            hsb.Brightness = (double)Max / 255;

            if (Max == 0) hsb.Saturation = 0;
            else hsb.Saturation = (double)Diff / Max;

            double q;
            if (Diff == 0) q = 0;
            else q = (double)60 / Diff;

            if (Max == color.R)
            {
                if (color.G < color.B) hsb.Hue = (360 + q * (color.G - color.B)) / 360;
                else hsb.Hue = q * (color.G - color.B) / 360;
            }
            else if (Max == color.G) hsb.Hue = (120 + q * (color.B - color.R)) / 360;
            else if (Max == color.B) hsb.Hue = (240 + q * (color.R - color.G)) / 360;
            else hsb.Hue = 0.0;

            return hsb;
        }
コード例 #9
0
ファイル: MyColors.cs プロジェクト: Andy-Yin/MY_OA_RM
 public void RGBUpdate()
 {
     this.HSB = this.RGB;
     this.CMYK = this.RGB;
 }
コード例 #10
0
ファイル: MyColors.cs プロジェクト: Andy-Yin/MY_OA_RM
 public void CMYKUpdate()
 {
     this.RGB = this.CMYK;
     this.HSB = this.CMYK;
 }
コード例 #11
0
ファイル: MyColors.cs プロジェクト: Andy-Yin/MY_OA_RM
 public MyColor(Color color)
 {
     this.RGB = color;
     this.HSB = color;
     this.CMYK = color;
 }
コード例 #12
0
ファイル: MyColors.cs プロジェクト: Andy-Yin/MY_OA_RM
        public static Color ToColor(HSB hsb)
        {
            int Mid;

            int Max = ColorHelper.Round(hsb.Brightness * 255);
            int Min = ColorHelper.Round((1.0 - hsb.Saturation) * (hsb.Brightness / 1.0) * 255);
            double q = (double)(Max - Min) / 255;

            if (hsb.Hue >= 0 && hsb.Hue <= (double)1 / 6)
            {
                Mid = ColorHelper.Round(((hsb.Hue - 0) * q) * 1530 + Min);
                return Color.FromArgb(Max, Mid, Min);
            }
            if (hsb.Hue <= (double)1 / 3)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - (double)1 / 6) * q) * 1530 + Max);
                return Color.FromArgb(Mid, Max, Min);
            }
            if (hsb.Hue <= 0.5)
            {
                Mid = ColorHelper.Round(((hsb.Hue - (double)1 / 3) * q) * 1530 + Min);
                return Color.FromArgb(Min, Max, Mid);
            }
            if (hsb.Hue <= (double)2 / 3)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - 0.5) * q) * 1530 + Max);
                return Color.FromArgb(Min, Mid, Max);
            }
            if (hsb.Hue <= (double)5 / 6)
            {
                Mid = ColorHelper.Round(((hsb.Hue - (double)2 / 3) * q) * 1530 + Min);
                return Color.FromArgb(Mid, Min, Max);
            }
            if (hsb.Hue <= 1.0)
            {
                Mid = ColorHelper.Round(-((hsb.Hue - (double)5 / 6) * q) * 1530 + Max);
                return Color.FromArgb(Max, Min, Mid);
            }
            return Color.FromArgb(0, 0, 0);
        }