public ColorContrastResult RunColorContrastCalculation()

in src/Desktop/ColorContrastAnalyzer/ImageCollection.cs [40:75]


        public ColorContrastResult RunColorContrastCalculation()
        {
            ColorContrastResult result = null;

            ColorContrastRunner runner = new ColorContrastRunner(_colorContrastConfig);

            Color previousColor = null;

            foreach (var pixel in GetBinaryRowSearchIterator())
            {
                if (IsNewRow(pixel)) runner.OnRowBegin();

                runner.OnPixel(pixel.Color, previousColor);
                previousColor = pixel.Color;

                if (IsEndOfRow(pixel))
                {
                    var newResult = runner.OnRowEnd();

                    if (result == null) result = newResult;

                    if (newResult.ConfidenceValue() == ColorContrastResult.Confidence.High)
                    {
                        result = newResult;
                        break;
                    }
                    else if (newResult.ConfidenceValue() == ColorContrastResult.Confidence.Mid &&
                      result.ConfidenceValue() == ColorContrastResult.Confidence.Low)
                    {
                        result = newResult;
                    }
                }
            }

            return result;
        }