android图片高斯模糊方法

 
//高斯模糊
        private  Bitmap rsBlur(Bitmap source,int radius){


            Bitmap inputBmp = source;
            //(1)
            RenderScript renderScript =  RenderScript.create(getActivity());


            Log.i(TAG,"scale size:"+inputBmp.getWidth()+"*"+inputBmp.getHeight());


            // Allocate memory for Renderscript to work with
            //(2)
            final Allocation input = Allocation.createFromBitmap(renderScript,inputBmp);
            final Allocation output = Allocation.createTyped(renderScript,input.getType());
            //(3)
            // Load up an instance of the specific script that we want to use.
            ScriptIntrinsicBlur scriptIntrinsicBlur = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
            //(4)
            scriptIntrinsicBlur.setInput(input);
            //(5)
            // Set the blur radius
            scriptIntrinsicBlur.setRadius(radius);
            //(6)
            // Start the ScriptIntrinisicBlur
            scriptIntrinsicBlur.forEach(output);
            //(7)
            // Copy the output to the blurred bitmap
            output.copyTo(inputBmp);
            //(8)
            renderScript.destroy();


            return inputBmp;
        }

猜你喜欢

转载自blog.csdn.net/hehe_heh/article/details/80094690