android 高斯模糊效果(内含Glide、官方提供的RenderScript)

先看看效果图

android 高斯模糊效果(内含Glide、官方提供的RenderScript)_第1张图片

1.RenderScript

   @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
    private static Bitmap rsBlur(Context context, Bitmap source, int radius){
        Bitmap inputBmp = source;
        RenderScript renderScript =  RenderScript.create(context);
        final Allocation input = Allocation.createFromBitmap(renderScript,inputBmp);
        final Allocation output = Allocation.createTyped(renderScript,input.getType());
        ScriptIntrinsicBlur scriptIntrinsicBlur = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
        scriptIntrinsicBlur.setInput(input);
        scriptIntrinsicBlur.setRadius(radius);
        scriptIntrinsicBlur.forEach(output);
        output.copyTo(inputBmp);
        renderScript.destroy();
        return inputBmp;
    }

    //使用
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.qijie1);
        Bitmap bitmap1 = rsBlur(this, bitmap, 10);//10:模糊半径,范围1-25,越大图片越模糊
        imageView.setImageBitmap(bitmap1);

2.使用Glide高斯模糊

2.1 添加依赖

    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'jp.wasabeef:glide-transformations:2.0.1'

2.2 使用

     Glide.with(this)
                .load("https://wx2.sinaimg.cn/mw690/81711c85ly1fwdfcrntehj21jk2bc7wi.jpg")
                // 25:模糊半径,越大图片越模糊 范围:1-25,1:缩放倍数
                .bitmapTransform(new BlurTransformation(this, 25,1))  
                .into(imageView);

 

你可能感兴趣的:(android 高斯模糊效果(内含Glide、官方提供的RenderScript))