コード例 #1
0
        public double GetSampleScoreRaw(byte[] rgbPixels)
        {
            Color c   = GetAverageColor(rgbPixels);
            var   hsl = HslConversion.FromRgb(c.R, c.G, c.B);

            return(hsl.Item2);
        }
コード例 #2
0
        private void UpdateColors()
        {
            rectColor.Fill = new SolidColorBrush(Color);
            txtR.Text      = "R: " + Color.R.ToString("D");
            txtG.Text      = "G: " + Color.G.ToString("D");
            txtB.Text      = "B: " + Color.B.ToString("D");

            var hsl = HslConversion.FromRgb(Color.R, Color.G, Color.B);

            txtH.Text = "H: " + hsl.Item1.ToString("f0");
            txtS.Text = "S: " + hsl.Item2.ToString("f0");
            txtL.Text = "L: " + hsl.Item3.ToString("f0");
        }
コード例 #3
0
ファイル: ColorSampler.cs プロジェクト: yts0629/ScriptPlayer
        private bool CheckSample(byte r1, byte g1, byte b1, byte r2, byte g2, byte b2)
        {
            if (Red == null)
            {
                return(false);
            }

            if (!Red.IsAcceptableValue(Math.Abs(r1 - r2)))
            {
                return(false);
            }
            if (!Green.IsAcceptableValue(Math.Abs(g1 - g2)))
            {
                return(false);
            }
            if (!Blue.IsAcceptableValue(Math.Abs(b1 - b2)))
            {
                return(false);
            }

            if (Hue.State != ConditionState.NotUsed || Saturation.State != ConditionState.NotUsed ||
                Luminosity.State != ConditionState.NotUsed)
            {
                var hsl1 = HslConversion.FromRgb(r1, g1, b1);
                var hsl2 = HslConversion.FromRgb(r2, g2, b2);

                var hsl = new Tuple <double, double, double>(Math.Abs(hsl1.Item1 - hsl2.Item1),
                                                             Math.Abs(hsl1.Item2 - hsl2.Item2), Math.Abs(hsl1.Item3 - hsl2.Item3));

                if (hsl.Item3 > 180)
                {
                    hsl = new Tuple <double, double, double>(hsl.Item1, hsl.Item2, 360 - hsl.Item3);
                }

                if (!Hue.IsAcceptableValue((int)Math.Round(hsl.Item1)))
                {
                    return(false);
                }
                if (!Saturation.IsAcceptableValue((int)Math.Round(hsl.Item2)))
                {
                    return(false);
                }
                if (!Luminosity.IsAcceptableValue((int)Math.Round(hsl.Item3)))
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #4
0
ファイル: ColorSampler.cs プロジェクト: yts0629/ScriptPlayer
        private bool CheckSample(byte r, byte g, byte b)
        {
            if (Red == null)
            {
                return(false);
            }

            if (!Red.IsAcceptableValue(r))
            {
                return(false);
            }
            if (!Green.IsAcceptableValue(g))
            {
                return(false);
            }
            if (!Blue.IsAcceptableValue(b))
            {
                return(false);
            }

            if (Hue.State != ConditionState.NotUsed || Saturation.State != ConditionState.NotUsed ||
                Luminosity.State != ConditionState.NotUsed)
            {
                var hsl = HslConversion.FromRgb(r, g, b);

                if (!Hue.IsAcceptableValue((int)Math.Round(hsl.Item1)))
                {
                    return(false);
                }
                if (!Saturation.IsAcceptableValue((int)Math.Round(hsl.Item2)))
                {
                    return(false);
                }
                if (!Luminosity.IsAcceptableValue((int)Math.Round(hsl.Item3)))
                {
                    return(false);
                }
            }

            return(true);
        }