code: public static BufferedImage toBuffered(Image pOriginal) {
          // Don't convert if it already is BufferedImage
          if (pOriginal instanceof BufferedImage) {
              return (BufferedImage) pOriginal;
          }
          if (pOriginal == null) {
              throw new IllegalArgumentException("original == null");
          }
  
          //System.out.println("--> Doing full BufferedImage conversion...");
  
          BufferedImageFactory factory = new BufferedImageFactory(pOriginal);
          return factory.getBufferedImage();
      }
docs: Converts the {@code Image} to a {@code BufferedImage}.
  The new image will have the same {@code ColorModel}, {@code Raster} and
  properties as the original image, if possible.
  <p/>
  If the image is already a {@code BufferedImage}, it is simply returned
  and no conversion takes place.
  
  @param pOriginal the image to convert.
  
  @return a {@code BufferedImage}
  
  @throws IllegalArgumentException if {@code pOriginal == null}
  @throws ImageConversionException if the image cannot be converted