Android下高斯模糊的算法和demo

时间:2014-07-09 00:42:09   收藏:0   阅读:635

采用纯java和RenderScript两种方式来做高斯算法。

也可以用NDK来做,想试试的可以参考:

http://stackoverflow.com/questions/2067955/fast-bitmap-blur-for-android-sdk/23119957#23119957

 

 

     bubuko.com,布布扣                           bubuko.com,布布扣

 

 

 

纯java的代码有点长,可直接参考源代码

 

放上RenderScript的核心算法 :

/**
     * 第二种方法的延伸
     * 
     * @param bm
     * @param view
     * @return void
     * @author Doraemon
     * @time 2014年7月7日下午4:56:53
     */
    private void rsBlur2(Bitmap bm, ImageView view) {
        Bitmap outputBitmap = Bitmap.createBitmap((int) (view.getMeasuredWidth() / 1), (int) (view.getMeasuredHeight() / 1),
                Bitmap.Config.ARGB_8888);

        RenderScript rs = RenderScript.create(getApplicationContext());
        ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        Allocation tmpIn = Allocation.createFromBitmap(rs, bm);
        Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
        theIntrinsic.setRadius(25.f);
        theIntrinsic.setInput(tmpIn);
        theIntrinsic.forEach(tmpOut);
        tmpOut.copyTo(outputBitmap);
        bm.recycle();
        view.setImageDrawable(new BitmapDrawable(getResources(), outputBitmap));
        rs.destroy();

    }

 

源码下载地址:请戳这里--------->

Android下高斯模糊的算法和demo,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!