code: public static Bitmap onStackBlurClip(Bitmap original, int radius) {
          Bitmap bitmap = checkSource(original, radius);
  
          // Return this none blur
          if (radius == 1) {
              return bitmap;
          }
  
          int h = bitmap.getHeight();
          int w = bitmap.getWidth();
  
          final int clipPixels = 1024 * 256;
          float clipScale = (h * w) / clipPixels;
          int minLen = radius + radius + 50;
  
          if (clipScale >= 2) {
              float itemLen = h / clipScale;
              itemLen = itemLen < minLen ? minLen : itemLen;
              clipScale = h / itemLen;
          }
  
          if (clipScale < 2) {
              //Jni BitMap Blur
              nativeStackBlurBitmap(bitmap, radius);
          } else {
              if (clipScale > 12)
                  clipScale = 12;
              //Jni BitMap Blur
              onStackBlurClip(bitmap, radius, (int) clipScale);
          }
  
          return (bitmap);
      }
docs: StackBlur By Jni Bitmap
  in this we will cut the source bitmap to some parts.
  We'll deal(blur) with it one by one. This will reduce the memory consumption.
  
  @param original Original Image
  @param radius   Blur radius
  @return Image Bitmap