摘要:
问题:我们利用RenderScript来实现图片的高斯模糊时,模糊度只能到25,所以有时候就不能满足我们的需求,模糊度不够。
解决思路:我们可以利用图片放大也会导致图片模糊的原理,来提高我们图片的模糊度,如:我们先把图片缩小到原来的1/2,然后利用RenderScript做模糊处理,最后我们再把图片放大2倍,回到原来的大小,这样就可以达到我们想要的模糊度了,如果还不行,你可以把图片缩小到原来的1/4、1/6等等,最后返回原来的尺寸就可以了。
首先看下利用RenderScript实现图片的高斯模糊:
/**
*blurRadius<=25f
**/
public static Bitmap blur(Context context, Bitmap bitmap, float blurRadius) {
RenderScript renderScript = RenderScript.create(context);
ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
Allocation inAllocation = Allocation.createFromBitmap(renderScript, bitmap);
Bitmap outputBitmap;
outputBitmap = bitmap;