2015-05-04 15 views
9

üzerinde bulanıklık efekti ekleyin o bulanıklığı elde musluklar görüntü iksir dokunduğunda.i kullanıcı tap.User görüntü üzerinde birden çok kez dokunup olabilir iksir üzerinde görüntü üzerinde etkisi bulanıklık istediğiniz resmin

using (var blurfilters = new FilterEffect(source)) 
{ 
    var blur = new BlurFilter(); 

    blurfilters.Filters = new IFilter[] { blur }; 
    var target = new WriteableBitmap((int)img1.ActualWidth, (int)img1.ActualHeight); 
    using (var renderer = new WriteableBitmapRenderer(blurfilters, target)) 
    { 
     await renderer.RenderAsync(); 
     img1.Source = target; 
    } 
} 

cevap

0

Dene Bu Bir:

var blur = new BlurFilter(30); 

Düzenleme:

yapmak için WritableBitmapExtensions ile gaussian blur yapın (eğer görmek için aynı writableBitmap için yeniden atamak zorunda yüzden bazı nedeni concolution, writableBitmap düzenleme yoktur için sonuç):

WriteableBitmap target = new WriteableBitmap((int)img1.ActualWidth, (int)img1.ActualHeight); 
target = target.Convolute(WriteableBitmapExtensions.KernelGaussianBlur5x5); 

veya

target = target.Convolute(WriteableBitmapExtensions.KernelGaussianBlur3x3); 
2

bu deneyin: Bu evrensel bir uygulama için benim için çalıştı

http://www.blendrocks.com/code-blend/2015/1/29/implementing-image-blur-in-a-windows-universal-app

.

etkili kodudur: Silverlight uygulaması denemek

private void OnDraw(CanvasControl sender, CanvasDrawEventArgs args) 
{ 
    if (imageLoaded) 
    { 
     using (var session = args.DrawingSession) 
     { 
      session.Units = CanvasUnits.Pixels; 

      double displayScaling = DisplayInformation.GetForCurrentView().LogicalDpi/96.0; 

      double pixelWidth = sender.ActualWidth * displayScaling; 

      var scalefactor = pixelWidth/image.Size.Width; 

      scaleEffect.Source = this.image; 
      scaleEffect.Scale = new Vector2() 
      { 
       X = (float)scalefactor, 
       Y = (float)scalefactor 
      }; 

      blurEffect.Source = scaleEffect; 
      blurEffect.BlurAmount = Blur; 

      session.DrawImage(blurEffect, 0.0f, 0.0f); 
     } 
    } 
} 

için bu bir:

http://www.dotnetcurry.com/showarticle.aspx?ID=1033

Eğer Gauss bulanıklığı isterseniz başka iyi örneğidir:

WP8: Is there an easy way to scale and blur an BitmapImage for windows phone app?

+0

i th bulanıklık istiyorum dokunduğum resmin üstünde. –

+0

tuvali buna göre ayarlayın. XAML WinRT uygulamasını kullanıyorsanız, bir gümüş ışığı değil. –

+0

plzz, muslukta bulanıklaştırmak istediğim bölgeyi nasıl seçebileceğimi anlatıyor –