Пример #1
0
        public Color Extract(Core.Light led, Core.PixelReader pixelReader)
        {
            //Region might not be set if the whole screen is black
            if (led.Region == null || led.Region == Rectangle.Empty)
            {
                return Color.Black;
            }
            else
            {
                // Average the pixels
                int r = 0, g = 0, b = 0, pixelCount = 0;
                foreach (var pixel in pixelReader.GetEveryNthPixel(this.PixelSkip))
                {
                    r += pixel.R;
                    g += pixel.G;
                    b += pixel.B;
                    pixelCount++;
                }

                int redAvg = r / pixelCount;

                int greenAvg = g / pixelCount;

                int blueAvg = b / pixelCount;

                return Color.FromArgb(redAvg, greenAvg, blueAvg);
            }

        }
        public Color Extract(Core.Light led, Core.PixelReader pixelReader)
        {
            // GetEveryNthPixel(this.PixelSkip) = so we average only every Nth pixel on each row starting with first

            // Average the pixels
            int r = 0, g = 0, b = 0, pixelCount = 0;
            foreach (var pixel in pixelReader.GetEveryNthPixel(this.PixelSkip.Value))
            {
                r += pixel.R;
                g += pixel.G;
                b += pixel.B;
                pixelCount++;
            }

            int redAvg = r/pixelCount;

            int greenAvg = g/pixelCount;

            int blueAvg = b/pixelCount;

            return Color.FromArgb(redAvg, greenAvg, blueAvg);
        }