docs: @Nullable
      public static Bitmap createViewBitmap(@NonNull View view, @NonNull Matrix matrix, @NonNull RectF bounds) {
          Bitmap bitmap = null;
          int bitmapWidth = Math.round(bounds.width());
          int bitmapHeight = Math.round(bounds.height());
          if (bitmapWidth > 0 && bitmapHeight > 0) {
              float scale = Math.min(1f, ((float)MAX_IMAGE_SIZE) / (bitmapWidth * bitmapHeight));
              bitmapWidth *= scale;
              bitmapHeight *= scale;
              matrix.postTranslate(-bounds.left, -bounds.top);
              matrix.postScale(scale, scale);
              try {
                  bitmap = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Config.ARGB_8888);
                  Canvas canvas = new Canvas(bitmap);
                  canvas.concat(matrix);
                  view.draw(canvas);
              } catch (OutOfMemoryError e) {
                  // ignore
              }
          }
          return bitmap;
      }