Urgent!!!enregistrement jpanel dans jpg

Messages postés
8
Date d'inscription
dimanche 23 janvier 2005
Dernière intervention
19 juillet 2006
- - Dernière réponse :  vadim - 28 mai 2018 à 15:40
Bonjour a tous!!!
je cherche dans le cadre d'un programme a faire pour le bahut a enregistrer un jpanel dans un fuchier jpg.
j'ai recuperer ce code mais il ne fonctionne pas car ma bufferedimage imagmodif est vide et je n'arrive pas a mettre mon jpanel dedans!!!
voici le code

JFileChooser save = new JFileChooser(); // boite de dialogue pour choisir le dossier de destination...
int returnVal = save.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION){
try{ // c ici que l'enregistrement de imagmodif se fait.


File fichier=new File(save.getSelectedFile().getName());
ImgIO_Save.write(imagmodif,"jpg",fichier); // soit format "jpg" soit "png"

}

catch (IOException ex){}
}

}

s'il vous plait aider moi c pour vendredi.....

"N'entres pas dans l'arène si t'es pas MATADOR!!!"
Afficher la suite 

Votre réponse

4 réponses

Messages postés
237
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
11 juillet 2006
0
Merci
Au moment de l'enregistrement tu n'as qu'a faire une capture d'ecran de ton JPanel et tu l'enregistres sous le nom indique du JFileChooser

cid019
Commenter la réponse de cid019
Messages postés
8
Date d'inscription
dimanche 23 janvier 2005
Dernière intervention
19 juillet 2006
0
Merci
Et comment je fais pour faire une capture d'ecran de mon JPanel???
desole je suis handicape en java...

"N'entres pas dans l'arène si t'es pas MATADOR!!!"
Commenter la réponse de matador215
Messages postés
333
Date d'inscription
dimanche 25 mai 2003
Dernière intervention
23 novembre 2009
0
Merci
Pour dessiner ton JPanel dans une BufferedImage, c'est pas compliqué :)



JPanel plan;
//.......
BufferedImage image = new BufferedImage(plan.getWidth(), plan.getHeight(),BufferedImage.TYPE_INT_RGB);
plan.paintComponent(image.getGraphics());


voilà



A+
Dobel
[Une fois rien, c'est rien; deux fois
rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà
s'acheter quelque chose, et pour pas cher]
Commenter la réponse de cs_Dobel
Messages postés
3
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
17 février 2005
0
Merci
Bonjour,
voici un code qui te permet de mettre ton JPanel ds une image :
//code pour transformer son jpanel en image
BufferedImage bI = new BufferedImage(p.getWidth(),p.getHeight(),BufferedImage.TYPE_BYTE_INDEXED);
p.paint(bI.getGraphics());
try {
File f = new File("imagefilename.jpg");
FileOutputStream fichier = new FileOutputStream(f);
ImageIO.write(bI, "jpg", fichier);
fichier.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}

Mais si tu met uniquement ça ds ton main, ton image sera un rectangle noir. Donc voici à quoi doit ressembler ton main, pour avoir ton image correct :

public static void main(String[] args) {

JFrame frame = new JFrame();
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
frame.setBounds(bounds); //pour que la frame s'ouvre directement aux dimensions de la fenêtre
frame.setTitle("Test PageA3");
JPanel p = new JPanel();
frame.getContentPane().add(p);
//frame.setBackground(Color.white);
frame.setVisible(true);



//code pour transformer son jpanel en image
BufferedImage bI = new BufferedImage(p.getWidth(),p.getHeight(),BufferedImage.TYPE_BYTE_INDEXED);
p.paint(bI.getGraphics());
try {
File f = new File("imagefilename.jpg");
FileOutputStream fichier = new FileOutputStream(f);
ImageIO.write(bI, "jpg", fichier);
fichier.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

Tiens nous au courant, si t'y arrives.
Oui, ça marche et c'est rapide!
EFFICACE et SIMPLE!
Un grand MERCI :-)

Vadim (Venant du monde Delphi et débutant en Java avec la même question)
Commenter la réponse de cs_calimero13

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.