Android用简洁的方法对图片进行高斯模糊

import android.support.v8.renderscript.Allocation;
import android.support.v8.renderscript.RenderScript;
import android.support.v8.renderscript.ScriptIntrinsicBlur;

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
  mRenderScript = RenderScript.create(getContext());
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_weather);
        bitmap = blur(bitmap);
        mImageWeather.setImageBitmap(bitmap);
        }
  // 对图片进行高斯模糊
    public Bitmap blur(Bitmap bmp) {
        Bitmap ret = null;
        if (bmp != null) {
            // 1. 先用创建一个包含RenderScript的的图片
            Allocation aIn = Allocation.createFromBitmap(mRenderScript, bmp);
            // 2.
            ScriptIntrinsicBlur blur =
                    ScriptIntrinsicBlur.create(mRenderScript, aIn.getElement());
            // 3.
            blur.setInput(aIn);
            blur.setRadius(1);  // {0, 25} , 越大越模糊
            // 4.
            Allocation aOut =
                    Allocation.createTyped(mRenderScript, aIn.getType());
            blur.forEach(aOut);

            // 5.
            ret = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888);
            aOut.copyTo(ret);

            aOut.destroy();
            aOut = null;
            aIn.destroy();
            aIn = null;
        }
        return ret;
    }

我们还需要在 app的gradle中添加:

 renderscriptSupportModeEnabled true
 renderscriptTargetApi 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值