async Task <Uri> GaussianNoise(int EffectPercentage)
 {
     using (var source = new StorageFileImageSource(imageStorageFile))
         using (var contrastEffect = new ContrastEffect(source)
         {
             Level = 0.6
         })
             using (var sharpnessEffect = new GaussianNoiseEffect(contrastEffect)
             {
                 Level = (EffectPercentage / 100)
             })
             {
                 LastEffect = sharpnessEffect;
                 return(await SaveToImage());
             }
 }
        private static IImageProvider2 CreateSource(Size renderSize, int grainSize)
        {
            if ((int)Math.Min(renderSize.Width, renderSize.Height) <= 0)
            {
                throw new ArgumentOutOfRangeException("renderSize");
            }

            const int smallerAxisFor5MPixels = 1728;

            double scaleFactor    = smallerAxisFor5MPixels / Math.Min(renderSize.Width, renderSize.Height);
            var    noiseImageSize = new Size(renderSize.Width * scaleFactor, renderSize.Height * scaleFactor);

            var limitedScaleFactor = Math.Max(1.0, scaleFactor);

            var colorImageSource = new ColorImageSource(noiseImageSize, Color.FromArgb(255, 128, 128, 128));

            var filterEffect = new GaussianNoiseEffect(colorImageSource, Math.Max(1, grainSize / limitedScaleFactor));

            return(filterEffect);
        }
        private static IImageProvider2 CreateSource(Size renderSize, int grainSize)
        {
            if ((int)Math.Min(renderSize.Width, renderSize.Height) <= 0)
            {
                throw new ArgumentOutOfRangeException("renderSize");
            }

            const int smallerAxisFor5MPixels = 1728;

            double scaleFactor = smallerAxisFor5MPixels / Math.Min(renderSize.Width, renderSize.Height);
            var noiseImageSize = new Size(renderSize.Width * scaleFactor, renderSize.Height * scaleFactor);

            var limitedScaleFactor = Math.Max(1.0, scaleFactor);

            var colorImageSource = new ColorImageSource(noiseImageSize, Color.FromArgb(255, 128, 128, 128));

            var filterEffect = new GaussianNoiseEffect(colorImageSource, Math.Max(1, grainSize / limitedScaleFactor));

            return filterEffect;
        }