2011-06-02 134 views
2

在我的应用程序中,我需要将模糊滤镜应用于图像。但是,效果应该越强,像素越远离用户可以在图像中自由绘制的线条。图像“渐变模糊”

让我们假设用户绘制的线正好在中间水平分割图像。然后,沿着这条线,渐变的效果应该是0%,从这条线上下一半,效果应该是50%等等。(如果您的机器上有Picasa,对于椭圆渐变也有类似的效果)

现在,我想我可能会尝试以下方法(我还没有,到目前为止 - 我只是收集的想法在这里):我可能会造成图像的100%的模糊版本,并使用与原始图像结合起来一个阿尔法面具。这个alpha-mask将从简单的黑/白线性渐变创建。

您认为这可能有效吗?有没有其他的实现可以直接使用过滤器?

回答

7

是的,你想到的方法将工作得很好。这里有两个图像,左侧是正常图像,右侧是由两个图像组成,其中底部正常,顶部模糊,顶部使用不透明蒙版将两者混合在一起:

<UniformGrid Columns="2"> 
    <Image Source="http://thecybershadow.net/misc/stackoverflow.png"/> 
    <Grid> 
     <Image Source="http://thecybershadow.net/misc/stackoverflow.png"/> 
     <Image Source="http://thecybershadow.net/misc/stackoverflow.png"> 
      <Image.Effect> 
       <BlurEffect Radius="5"/> 
      </Image.Effect> 
      <Image.OpacityMask> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
        <GradientStop Color="Transparent" Offset="0"/> 
        <GradientStop Color="White" Offset="1"/> 
       </LinearGradientBrush> 
      </Image.OpacityMask> 
     </Image> 
    </Grid> 
</UniformGrid> 

而这正是它看起来像逐渐模糊,你去从上到下对图像:

Logo Blurred and Blended

+0

谢谢您的回答 - 也感谢张贴的示例代码! – 2011-06-03 07:42:33

+0

@RickSladkey如何在WPF WP8中实现它? – 2015-01-07 14:51:38

+0

@CharanGhate里克答案中的示例代码是WPF。 WP8中是否提供了所需的内容我不知道。 – 2015-01-07 14:54:42