matador215
Messages postés8Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention19 juillet 2006
-
16 févr. 2005 à 12:48
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!!!"
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 16 févr. 2005 à 22:20
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]
cs_calimero13
Messages postés3Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention17 février 2005 17 févr. 2005 à 08:36
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());
}
}