Java Image to BufferedImage toBufferedImage(Image image)

Here you can find the source of toBufferedImage(Image image)

Description

to Buffered Image

License

Open Source License

Declaration

public static BufferedImage toBufferedImage(Image image) throws Exception 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;

import java.awt.image.PixelGrabber;

public class Main {
    public static BufferedImage toBufferedImage(Image image) throws Exception {

        if (image instanceof BufferedImage) {
            return (BufferedImage) image;
        }/*from w  ww  .  j av a  2s.c  o  m*/

        image = new ImageIcon(image).getImage();

        boolean hasAlpha = hasAlpha(image);

        BufferedImage bimage = null;
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

        int transparency = Transparency.OPAQUE;

        if (hasAlpha) {

            transparency = Transparency.BITMASK;

        }

        GraphicsDevice gs = ge.getDefaultScreenDevice();
        GraphicsConfiguration gc = gs.getDefaultConfiguration();
        bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);

        if (bimage == null) {

            int type = BufferedImage.TYPE_INT_RGB;

            if (hasAlpha) {

                type = BufferedImage.TYPE_INT_ARGB;

            }

            bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);

        }

        Graphics g = bimage.createGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();

        return bimage;
    }

    public static boolean hasAlpha(Image image) throws InterruptedException {

        if (image instanceof BufferedImage) {

            BufferedImage bi = (BufferedImage) image;
            return bi.getColorModel().hasAlpha();

        }

        PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false);
        pg.grabPixels();

        ColorModel cm = pg.getColorModel();
        return cm.hasAlpha();

    }
}

Related

  1. makeBufferedImage(final Image image)
  2. makeBufferedImage(Image image)
  3. makeBufferedImage(Image image)
  4. makeRGBABufferedImageFromImage( Image image)
  5. toBufferedImage(Image i)
  6. toBufferedImage(Image image)
  7. toBufferedImage(Image image)
  8. toBufferedImage(Image image)
  9. toBufferedImage(Image image)