【问题标题】:Blur a round image around the edge模糊边缘周围的圆形图像
【发布时间】:2016-01-22 19:40:47
【问题描述】:

我正在创建一个 Windows 10 移动 UWP 应用。我有一个圆形图像,我试图在边缘/边框周围淡化。图像后面有一个模糊的背景,我正在尝试创建一个外观,图像与模糊的背景一起消失。

圆/椭圆图片的XAML代码:

<Ellipse Height="145"
         Width="145"
         HorizontalAlignment="Center"
         VerticalAlignment="Bottom">
         <Ellipse.Fill>
            <ImageBrush ImageSource="ms-appx:///Assets/test/card_picture_test.jpg" Stretch="UniformToFill"/>
         </Ellipse.Fill>
</Ellipse>

尚未找到任何方法来模糊边框周围的图像。这可能吗?

(我曾尝试使用 Win2D 解决此问题,但没有设法模糊圆形图像或仅在边缘/边框周围模糊图像。)

帮助表示赞赏。谢谢!

【问题讨论】:

  • Win2d 可以工作:创建两个图层都包含您的图像 - 模糊第一个图层,然后使用径向渐变蒙版在其上绘制第二个图层(中心:可见,边缘:蒙版)。

标签: image xaml windows-10 uwp blur


【解决方案1】:

我能够通过使用两个椭圆来实现您的目标。 一个在另一个上面,里面都有图片。

        <Grid>
            <Ellipse Width="500" Height="500">
                <Ellipse.Fill>
                    <ImageBrush ImageSource="forest.JPG" />
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse Width="500" Height="500">
                <Ellipse.OpacityMask>
                    <RadialGradientBrush>
                        <GradientStop Color="#00000000" Offset="0"/>
                        <GradientStop Color="Black" Offset="1"/>
                    </RadialGradientBrush>
                </Ellipse.OpacityMask>
                <Ellipse.Fill>
                    <ImageBrush ImageSource="forest.JPG" />
                </Ellipse.Fill>
                <Ellipse.Effect>
                    <BlurEffect Radius="10"/>
                </Ellipse.Effect>
            </Ellipse>
        </Grid>

上面的椭圆是完全模糊的,下面是正常的。 从那里,我给顶部(模糊)椭圆一个 OpacityMask,使模糊椭圆的中心透明,从而显示非模糊椭圆图像。

现在您可以通过更改顶部 Ellipse 的 GradientStop Offset 的不透明度蒙版以及 BlurEffect 的半径来修改模糊程度。

BlurEffect 的半径将改变它的模糊程度,而 GradientStops 的偏移量将改变允许模糊的距离。

【讨论】:

  • 此解决方案在 UWP 中不起作用,因为没有 opacitymask 或效果。
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
相关资源
最近更新 更多