2011-06-02 141 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