Creation fichier jpg à partir d'un objet Image [Résolu]

Messages postés
2
Date d'inscription
lundi 28 août 2006
Dernière intervention
3 janvier 2007
- 2 janv. 2007 à 16:02 - Dernière réponse :
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
- 2 janv. 2007 à 22:50
comment puis je creer un fichier jpg à partir d'un objet Image deja rempli.
J'utilise le jdk 1.4
Merci
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
2 janv. 2007 à 16:17
3
Merci
Salut:

Tu dois convertir ton objet Image en un objet BufferedImage.
Puis utiliser la méthode write de la classe javax.imageio.ImageIO

File f = new File ("save.jpg");
try {
    ImageIO.write (bufferedImage, "jpg", f);
}
catch (IOException e) {
}

Merci Ombitious_Developper 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Ombitious_Developper
Meilleure réponse
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
2 janv. 2007 à 22:50
3
Merci
Salut:

(Solution de twints)

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();
}

Merci Ombitious_Developper 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Ombitious_Developper

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.