Enregistrer une image sans l'afficher

Enregistrer une image sans l'afficher - Java - Programmation

Marsh Posté le 10-05-2004 à 19:21:23    

Bonjour à tous,
Premiérement merci à tous de participer activement au forum.
Ca aide énormément de lire les divers sujets qui y circulent. Nous apprenons enormement.
Ensuite, vient l'heure de la petite question :
est-il possible en Java, d'enregistrer une image sans la visualiser au préalable ?? Car je veux générer une courbe et enregistrer la courbe correspondante dans un fichier. Donc en fait dans un JPanel, j'utilise la méthode paint pour dessiner ma courbe. Ce qu'il y a c'est que pour l'enregistrer j'aibesoin de l'afficher car j'utilise ceci :
 

BufferedImage thumbImage = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_RGB);
      Graphics2D graphics2D = thumbImage.createGraphics();
      graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
        RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      graphics2D.drawImage(offScreen, 0, 0, d.width, d.height, null);
 
         BufferedOutputStream out = new BufferedOutputStream(new
             FileOutputStream("c:\\courbe.jpg" ));
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
      JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
      int quality = 100;
      quality = Math.max(0, Math.min(quality, 100));
      param.setQuality((float)quality / 100.0f, false);
      encoder.setJPEGEncodeParam(param);
      encoder.encode(thumbImage);

 
si quelqu'un pouvait m'aider...
Merci d'avance
Et continuer comme ça !!

Reply

Marsh Posté le 10-05-2004 à 19:21:23   

Reply

Marsh Posté le 10-05-2004 à 20:47:46    

je comprends pas ta question ; le code que tu as posté n'affiche pas l'image... C'est quoi offscreen ?


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 10-05-2004 à 22:16:03    

Ouaou, y'a plus simple quand même...

Code :
  1. BufferedImage bi =
  2.     new BufferedImage(HAUTEUR, LARGEUR, BufferedImage.TYPE_INT_RGB);
  3. Graphics g = bi.getGraphics();
  4. /*
  5. * Opérations de painturages sur g;
  6. */
  7. ImageIO.write(bi, "jpg", new File(FILE_NAME));


 
De cette façon tu n'écris pas à l'écran, mais directement sur ta BufferedImage.
 
Pour charger un fichier dans une BufferedImage, tu fais :
 

Code :
  1. BufferedImage bi = ImageIO.read(new File(f));


 
Et tu pourras également extraire le Graphics avec un getGraphics

Reply

Marsh Posté le 11-05-2004 à 11:18:53    

mais si tu es en jdk < 1.4, et que ton image n'est pas affichée à l'écran, tu obtiendras null, normalement.

Reply

Marsh Posté le 11-05-2004 à 11:44:38    

gfive a écrit :

mais si tu es en jdk < 1.4, et que ton image n'est pas affichée à l'écran, tu obtiendras null, normalement.


 
C'est folklo, ça.  :??:  
Aucune envie de vérifier, j'avoue.  :D  
Mais il n'a pas parlé de JDK < 1.4, donc ça devrait aller, je suppose...

Reply

Marsh Posté le 11-05-2004 à 11:51:13    

c'est pas folklo : c'est l'option "headless" de Java, qui permet de travailler des images sans environnement graphique.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed