code: protected BufferedImage create_BACKGROUND_Image(final int WIDTH, final int HEIGHT, BufferedImage image) {
          if (WIDTH <= 0 || HEIGHT <= 0) {
              return UTIL.createImage(1, 1, Transparency.TRANSLUCENT);
          }
  
          if (image == null) {
              image = UTIL.createImage(WIDTH, HEIGHT, Transparency.TRANSLUCENT);
          }
          final Graphics2D G2 = image.createGraphics();
          G2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
          G2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
  
          final int IMAGE_WIDTH = image.getWidth();
          final int IMAGE_HEIGHT = image.getHeight();
  
          // Draw the background image
          BACKGROUND_FACTORY.createLinearBackground(WIDTH, HEIGHT, getBackgroundColor(), getModel().getCustomBackground(), getModel().getTextureColor(), image);
  
          // Draw the custom layer if selected
          if (isCustomLayerVisible()) {
              G2.drawImage(UTIL.getScaledInstance(getCustomLayer(), IMAGE_WIDTH, IMAGE_HEIGHT, RenderingHints.VALUE_INTERPOLATION_BICUBIC), 0, 0, null);
          }
  
          G2.dispose();
  
          return image;
      }
docs: Returns the background image with the currently active backgroundcolor
  with the given width and height.
  @param WIDTH
  @param HEIGHT
  @param image
  @return buffered image containing the background with the selected background design