CompositionDrawingSurface ApplyBlurEffect(CanvasBitmap bitmap, Windows.UI.Composition.CompositionGraphicsDevice device, Size sizeTarget) { GaussianBlurEffect blurEffect = new GaussianBlurEffect() { Source = bitmap, BlurAmount = 20.0f, BorderMode = EffectBorderMode.Hard, }; float fDownsample = .3f; Size sizeSource = bitmap.Size; if (sizeTarget == Size.Empty) { sizeTarget = sizeSource; } sizeTarget = new Size(sizeTarget.Width * fDownsample, sizeTarget.Height * fDownsample); CompositionDrawingSurface blurSurface = device.CreateDrawingSurface(sizeTarget, DirectXPixelFormat.B8G8R8A8UIntNormalized, DirectXAlphaMode.Premultiplied); using (var ds = CanvasComposition.CreateDrawingSession(blurSurface)) { Rect destination = new Rect(0, 0, sizeTarget.Width, sizeTarget.Height); ds.Clear(Windows.UI.Color.FromArgb(255, 255, 255, 255)); ds.DrawImage(blurEffect, destination, new Rect(0, 0, sizeSource.Width, sizeSource.Height)); } return(blurSurface); }
void ApplyBlurEffect(CompositionDrawingSurface surface, CanvasBitmap bitmap, Windows.UI.Composition.CompositionGraphicsDevice device) { GaussianBlurEffect blurEffect = new GaussianBlurEffect() { Source = bitmap, BlurAmount = 40.0f, BorderMode = EffectBorderMode.Hard, }; using (var ds = CanvasComposition.CreateDrawingSession(surface)) { ds.Clear(Color.FromArgb(255, 255, 255, 255)); ds.DrawImage(blurEffect); } }