1

Salut,
J'ai un petit soucis la. Je cherche a sauver une image jpg.
J'ai un JPanel, où je dessine des figures ( oval, rectangle, ligne ....) et j'aimerais sauvegarder ce JPanel en format jpg a partir d'un JFileChooser.
J'ai un fichier qui se créer mais pas du tout vavec l'image que je veux, j'ai genre une image toute noire, ou toute blanche ou a carreau ... bad trip koi
J'ai chercher dans tout les recoins mais je comprends pas réellement pourquoi et je doit mal situer l'erreur. Si quelqu'un pouvait m'éclairer ....
Voici mon code correspondant : (pour information ptD est ma zone de dessin)

/**Classe SauvegarderIm permettant de sauvegarder une image en format jpg*/ public class SauvegarderIm extends JFileChooser{      /**Constructeur d'un SauvegerderSe      @param ptD ZoneDessin Permettant la navigation*/    public SauvegarderIm(ZoneDessin ptD){      try{        // Onouvre une bo�e de dialogue pour sauver         JFileChooser jSauverIm = new JFileChooser();        jSauverIm.showSaveDialog(this);        // On prend le nom du fichier que l'on a rentr�        File f = jSauverIm.getSelectedFile();        String s = jSauverIm.getName(f);        // On capture dans l'image toute la partie dessin        BufferedImage image = new BufferedImage(ptD.getHeight(), ptD.getWidth(), BufferedImage.TYPE_INT_ARGB);         System.out.println(ptD.getHeight()); System.out.println(ptD.getWidth());        // On enregistre l'image capturer sous format jpg ï¿½partir du nom de fichier        FileImageOutputStream output = new FileImageOutputStream(f);        ImageIO.write(image, "jpg", output);    }catch(java.io.IOException exc){           System.out.println(exc);             }   catch (Exception exc) {                              exc.printStackTrace();         }           } }  

2

Ton image est vide ! Tu la construis, mais tu ne la remplis pas avec le contenu de ton Panel (enfin, de ta ZoneDessin, je ne sais pas exactement ce que c'est).
Je pense qu'il faut que tu fasses un getGraphics sur ton Panel et que tu utilses la méthode create dessus pour le copier et le mettre ensuite dans ton BufferedImage.
Mais c'est assez sale.
Plutôt que de dessiner dans un Panel, tu devrais dessiner directement dans un BufferedImage, puis sauver cette image ensuite.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

> ImageIO.write(image, "jpg", output);

ça sauvegarde une image en jpg ça ?? Je savais pas que ct aussi simple neutral A un moment j'avais cherché et j'avais pas trouvé couic

4

C'est apparu dans l'API 1.4.2 seulement.
Avant, il fallait écrire soi même les plug-ins pour les différents formats.
L'API 1.4.2 supporte d'office les formats JPG et PNG lecture/écriture et le format GIF en lecture.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

5

C'est trop fort magic
(un peu dommage pour le gif m'enfin vu qu'il y a le png.. et je suppose que c'est juste à cause de la licence embarrassed)
Sinon effectivement moi quand j'avais cherché, c'était la version 1.4.1... C'est une très bonne nouvelle #content#

yeeepeeeeeeeeeeee smilesmilesmilesmilesmile