UWP上的高斯模糊效果刷不了?

Posted

技术标签:

【中文标题】UWP上的高斯模糊效果刷不了?【英文标题】:Gaussian Blur Effect on UWP can't brush? 【发布时间】:2020-03-20 18:45:03 【问题描述】:

我尝试按照windows开发者UWP的教程,走到这一步

public sealed partial class MainPage : Page

    private Compositor compositor = Window.Current.Compositor;
    private SpriteVisual effectVisual;
    private CompositionEffectBrush effectBrush;

    public MainPage()
    
        this.InitializeComponent();
    

    private void BlurAmount_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
    
        var blur_amount = (float)e.NewValue;


    

    private void Page_Loaded(object sender, RoutedEventArgs e)
    
        effectVisual = compositor.CreateSpriteVisual();

        var graphicsEffect = new GaussianBlurEffect
        
            BlurAmount = 100f,
            BorderMode = EffectBorderMode.Hard,
            Source = new CompositionEffectSourceParameter("Background")
        ;

        var effectFactory = compositor.CreateEffectFactory(graphicsEffect);
        effectBrush = effectFactory.CreateBrush();

        var destinationBrush = compositor.CreateBackdropBrush();
        effectBrush.SetSourceParameter("Background", destinationBrush);

        effectVisual.Brush = effectBrush;

        ElementCompositionPreview.SetElementChildVisual(theGrid, effectVisual);
    

这是我制作的 UI,我想模糊根网格中心的网格,上面有一个图像背景

<Grid x:Name="Back">
    <Grid.Background>
        <ImageBrush ImageSource="Assets/1.png"/>
    </Grid.Background>
    <Grid x:Name="theGrid" VerticalAlignment="Center" HorizontalAlignment="Center"
          Width="100" Height="100" ></Grid>
    <Slider x:Name="BlurAmount" ValueChanged="BlurAmount_ValueChanged" Maximum="100" Minimum="0"/>
</Grid>

他的代码和我的一样,我重新检查了一千次,但我的模糊效果不适用于网格 我错过了什么吗?

【问题讨论】:

【参考方案1】:

我认为有必要指定视觉的大小,例如:

blurSprite.Size = new Vector2((float)theGrid.ActualWidth, (float)theGrid.ActualHeight);

我现在无法测试,但这应该会有所帮助。

【讨论】:

永远是dotnet的英雄。

以上是关于UWP上的高斯模糊效果刷不了?的主要内容,如果未能解决你的问题,请参考以下文章

webgl智慧楼宇发光效果算法系列之高斯模糊

高斯模糊效果

模糊处理(下)--高斯模糊,双边模糊以及实现一个简单的磨皮美颜效果(opencv学习记录--4)

【iOS开发】生成高斯模糊效果背景

iOS开发-图片高斯模糊效果

iOS开发探索-高斯模糊&毛玻璃效果