BufferedImage <--> Image [Résolu]

Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 2 janv. 2007 à 03:01 - Dernière réponse : Twinuts 5266 Messages postés dimanche 4 mai 2003Date d'inscription 19 juin 2018 Dernière intervention
- 2 janv. 2007 à 23:10
Salut:

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

Votre réponse

5 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 2 janv. 2007 à 07:39
3
Merci
Il te suffisait de chercher un minimum :
http://java.developpez.com/faq/gui/?page=graphique_general_images#GRAPHIQUE_IMAGE_from_BufferedImage

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 119 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
Twinuts 5266 Messages postés dimanche 4 mai 2003Date d'inscription 19 juin 2018 Dernière intervention - 2 janv. 2007 à 15:59
3
Merci
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

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 119 internautes ce mois-ci

Commenter la réponse de Twinuts
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 2 janv. 2007 à 11:40
0
Merci
Merci c'est plus ce que j'ai voulu.
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 2 janv. 2007 à 22:48
0
Merci
Merci, où es tu passé dernièrement ...
Commenter la réponse de Ombitious_Developper
Twinuts 5266 Messages postés dimanche 4 mai 2003Date d'inscription 19 juin 2018 Dernière intervention - 2 janv. 2007 à 23:10
0
Merci
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
Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.