zoukankan      html  css  js  c++  java
  • Android开发——高斯模糊效果的简单实现

    0. 前言

    Android开发中,经常在音乐软件中看到高斯模糊效果。

    在找遍了所有高斯模糊的算法代码后,发现stackblurJava实现是最快的。效果如下所示。



    1.  高斯模糊效果实现

    Bitmap overlay;
    JavaBlurProcess process = new JavaBlurProcess();
    private void blur(Bitmap srcBitmap, ImageView view, float radius) {
      int scaleFactor = 8;
      if (overlay != null){
         overlay.recycle();
      }
      overlay = Bitmap.createScaledBitmap(srcBitmap, 
      srcBitmap.getWidth()/scaleFactor, srcBitmap.getHeight()/scaleFactor, false);
      overlay = process.blur(overlay, radius);
      view.setImageBitmap(overlay);
    }
    

    核心代码如上所示,这里调用了JavaBlurProcess工具类,第十行调用该类的blur()方法,传入经过处理过的源bitmap和模糊半径radius,再将返回的bitmap设置给第二个ImageViewradius越小,则图片越清晰,在本例中也设置为了8,是调参经验的结果

    这里调用了createScaledBitmap()对源bitmap进行了减少像素点个数的预处理,如果不处理的话,高斯模糊的效率会因为像素点过多而产生效率的问题,但是设置的过大会产生明显的像素块,这里设置为8倍缩放。和上面的模糊半径一样也是通过调参得出的经验结果

    最后是JavaBlurProcess工具类有300多行,这里就不贴了,感兴趣的可以去研读该工具类的源码。

    因为是Java实现,还是比较容易使用的。源码地址点击下载

  • 相关阅读:
    C语言I博客作业04
    C语言I博客作业02
    The First Assignment
    蒟蒻的长链剖分学习笔记(例题:HOTEL加强版、重建计划)
    分治FFT模板
    [Ynoi2016]掉进兔子洞 题解
    蒟蒻首开博客园博客QwQ
    bzoj4320 homework 题解
    [ZJOI2016]小星星(容斥+dp)
    【scoi2009】围豆豆(最短路模型)
  • 原文地址:https://www.cnblogs.com/qitian1/p/6461444.html
Copyright © 2011-2022 走看看