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); }
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); }