Enregistrer une image sans l'afficher - Java - Programmation
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 ?
Marsh Posté le 10-05-2004 à 22:16:03
Ouaou, y'a plus simple quand même...
Code :
|
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 :
|
Et tu pourras également extraire le Graphics avec un getGraphics
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.
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.
Mais il n'a pas parlé de JDK < 1.4, donc ça devrait aller, je suppose...
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.
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 !!