BufferedImage <--> Image

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 2 janv. 2007 à 03:01
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 2 janv. 2007 à 23:10
Salut:

Je me demande comment convertir un BufferedImage en un Image?
_________________________________________________________________________________
A.B. :: Si on veut on peut ...

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 janv. 2007 à 07:39
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 janv. 2007 à 15:59
Salut,

sinon pour convertir un BufferedImage ver un objet Image tu peux faire :

public Image createImage(BufferedImage bufferedImage) {
    return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource());
}

et pour convetir une image vers un objet BufferedImage tu peux faire (solution complexe mais qui gère casi tout):

public BufferedImage createBufferedImage(Image image) {
    if(image == null) return null;
    if (image instanceof BufferedImage) return (BufferedImage) image;
    image = new ImageIcon(image).getImage();
    boolean hasAlpha = hasAlpha(image);
    BufferedImage bimage = null;
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    try {
        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);
    } catch (HeadlessException e) {
        // erreur pas d'ecran
    }
    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 boolean hasAlpha(Image image) {
    if (image instanceof BufferedImage) {
        BufferedImage bimage = (BufferedImage) image;
        return bimage.getColorModel().hasAlpha();
    }
    PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false);
    try {
        pg.grabPixels();
    } catch (InterruptedException e) { return false;}
    ColorModel cm = pg.getColorModel();
    return cm.hasAlpha();
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
2 janv. 2007 à 11:40
Merci c'est plus ce que j'ai voulu.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
2 janv. 2007 à 22:48
Merci, où es tu passé dernièrement ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 janv. 2007 à 23:10
Salut,

en vacances et je suis rentré hier c'est pour cela que je n'ai pas super participé :P

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous