Fast Bitmap Blur For Android SDK

后端 未结 19 1782
情书的邮戳
情书的邮戳 2020-11-22 08:53

Currently in an Android application that I\'m developing I\'m looping through the pixels of an image to blur it. This takes about 30 seconds on a 640x480 image.

W

19条回答
  •  庸人自扰
    2020-11-22 09:32

    This code is work perfect for me

    Bitmap tempbg = BitmapFactory.decodeResource(getResources(),R.drawable.b1); //Load a background.
    Bitmap final_Bitmap = BlurImage(tempbg);
    
    
    @SuppressLint("NewApi")
    Bitmap BlurImage (Bitmap input)
    {
        try
        {
        RenderScript  rsScript = RenderScript.create(getApplicationContext());
        Allocation alloc = Allocation.createFromBitmap(rsScript, input);
    
        ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rsScript,   Element.U8_4(rsScript));
        blur.setRadius(21);
        blur.setInput(alloc);
    
        Bitmap result = Bitmap.createBitmap(input.getWidth(), input.getHeight(), Bitmap.Config.ARGB_8888);
        Allocation outAlloc = Allocation.createFromBitmap(rsScript, result);
    
        blur.forEach(outAlloc);
        outAlloc.copyTo(result);
    
        rsScript.destroy();
        return result;
        }
        catch (Exception e) {
            // TODO: handle exception
            return input;
        }
    
    }
    

提交回复
热议问题