code: public BufferedImage toNewBufferedImage(int type) {
          BufferedImage target = new BufferedImage(width, height, type);
          Graphics2D g2 = (Graphics2D) target.getGraphics();
          g2.drawImage(awt, 0, 0, null);
          g2.dispose();
          return target;
      }
docs: Returns a new AWT BufferedImage from this image.
  
  @param type the type of buffered image to create, if not specified then defaults to the current image type
  @return a new, non-shared, BufferedImage with the same data as this Image.