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; }