Android進行高斯模糊的簡單實現

2021-09-19 11:02:44 字數 1019 閱讀 8507

因為專案上有需求,將客人態的背景設定成使用者頭像的毛玻璃的效果(這句話怎麼這麼繞口,還是直接看吧)背景就是使用者的頭像

以前沒做過這種功能,所以上網查了一下,大牛們調研了很多種實現方法,因為需求比較簡單,對效能的要求沒有那麼苛刻,所以下面我將用最簡單的發來實現。思路是利用現有 android 提供的方法,通過 renderscript 呼叫底層介面實現高斯模糊計算.這種方法直接利用 android 系統提供的機制,從**實現上是最簡單也相對高效的。

第一步

在專案的 build.gradle 下引入 renderscript 如下

defaultconfig
經測試如果想以這種方式實現高斯模糊的效果,那麼 minsdkversion 最低為 17 ,不然執行的時候會報錯。

第二步

給需要進行高斯模糊的背景imageview設定資源,不明白?其實模糊的那一坨東西就是個imageview,從介面拉取到的使用者的頭像,再將頭像設定給imageview 設定好之後就可以用下面的方法新增模糊效果了。

/**

* 新增模糊效果

*/imgbackgroung.getviewtreeobserver().addonpredrawlistener(new viewtreeobserver.onpredrawlistener()

});}

下面是核心的模糊演算法

/**

* 乙個高斯模糊的演算法

** @param bkg

* @param view

*/private void blur(bitmap bkg, view view)

模糊的程度可以通過改變radius的大小來進行設定。

好了到這裡,乙個高斯模糊的背景就誕生了,demo我就不貼了,因為這個還是比較簡單的,有什麼問題,可以聯絡我。

android高斯模糊

高斯模糊演算法介紹 高斯模糊就是將指定畫素變換為其與周邊畫素加權平均後的值,權重就是高斯分布函式計算出來的值。演算法介紹 一 通過自身的寫演算法 public static void gaussblur int data,int width,int height,int radius,float s...

Android設定高斯模糊

分享自己寫的乙個高斯模糊的工具類,可以根據bitmap,imageviw,drawable或者資源檔案設定 public class blurimageview blurfractional inpixels,outpixels,width,height,hradius blurfractional...

android 高斯模糊處理的簡單使用

android 高斯模糊處理的簡單使用 先是按比例壓縮,然後質量壓縮 然後模糊處理,然後非空判斷一直用 activity結束的時候recycle一下 測試機,三星note3,新鮮出爐,還沒測試低端機 override protected void onscrollchanged int l,int ...