コード例 #1
0
        private static Color GetAverageColor(Point emptyPoint, Raster raster)
        {
            var a     = 0;
            var r     = 0;
            var g     = 0;
            var b     = 0;
            var count = 0;

            foreach (var point in АкварельBase.GetNearPoints(emptyPoint, raster.Width, raster.Height))
            {
                var c = raster.GetPixel(point);
                if (c.A == 0)
                {
                    continue;
                }

                a += c.A;
                r += c.R;
                g += c.G;
                b += c.B;
                count++;
            }

            a = (int)Math.Round((float)a / count);
            r = (int)Math.Round((float)r / count);
            g = (int)Math.Round((float)g / count);
            b = (int)Math.Round((float)b / count);

            return(Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b));
        }
コード例 #2
0
 private static bool FindEmpty(Point colorPoint, Raster raster)
 {
     return(АкварельBase.GetNearPoints(colorPoint, raster.Width, raster.Height)
            .Select(raster.GetAlpha)
            .Any(alpha => alpha == 0));
 }