Exemplo n.º 1
0
 public override void PostProcess(SKCanvas canvas, SKRect bounds, SKPaint paint)
 {
     paint.ImageFilter = SKImageFilter.CreateErode(
         (int)Properties.ErodeRadius.CurrentValue.Width,
         (int)Properties.ErodeRadius.CurrentValue.Height,
         paint.ImageFilter
         );
 }
Exemplo n.º 2
0
        protected override void OnDrawSample(SKCanvas canvas, int width, int height)
        {
            canvas.Clear(SKColors.White);

            using (var stream = new SKManagedStream(SampleMedia.Images.Baboon))
                using (var bitmap = SKBitmap.Decode(stream))
                    using (var filter = SKImageFilter.CreateErode(5, 5))
                        using (var paint = new SKPaint())
                        {
                            paint.ImageFilter = filter;

                            canvas.DrawBitmap(bitmap, SKRect.Create(width, height), paint);
                        }
        }
        public static SKImage ApplyErode(SKImage image, int degree)
        {
            var skErode   = SKImageFilter.CreateErode(degree, degree);
            var skSurface = SKSurface.Create(new SKImageInfo(100, 100));
            var skCanvas  = skSurface.Canvas;
            var Paint     = new SKPaint();

            Paint.ImageFilter = skErode;
            skCanvas.Clear();
            skCanvas.DrawImage(image, 0, 0, Paint);
            var img = skSurface.Snapshot();

            skCanvas.Dispose();
            skSurface.Dispose();
            return(img);
        }
        public static SKImage ApplyNoise(SKImage image)
        {
            var skSurface = SKSurface.Create(new SKImageInfo(100, 100));
            var skCanvas  = skSurface.Canvas;

            skCanvas.Clear();
            var skPaint = new SKPaint();

            if (StaticRandom.Instance.NextDouble() < 0.5)
            {
                skPaint.ImageFilter = SKImageFilter.CreateDilate(StaticRandom.Instance.Next(0, 2), StaticRandom.Instance.Next(0, 2));
            }
            else
            {
                skPaint.ImageFilter = SKImageFilter.CreateErode(StaticRandom.Instance.Next(0, 3), StaticRandom.Instance.Next(0, 3));
            }
            if (StaticRandom.Instance.NextDouble() < 0.5)
            {
                var noiseSize  = 3;
                var noiseCount = 20;
                for (var i = 0; i < noiseCount; i++)
                {
                    var x = StaticRandom.Instance.Next(0, 100 - noiseSize);
                    var y = StaticRandom.Instance.Next(0, 100 - noiseSize);

                    skCanvas.DrawRect(new SKRect(x, y, x + noiseSize, y + noiseSize), new SKPaint {
                        Color = SKColors.White
                    });
                }
            }
            skCanvas.DrawImage(image, 0, 0, skPaint);
            var img = skSurface.Snapshot();

            skCanvas.Dispose();
            skSurface.Dispose();
            return(img);
        }