Enregistrer une image dans un fichier. [java] - Java - Programmation
Marsh Posté le 16-05-2005 à 12:00:37
Si t'utilises une BufferedImage, un ptit tour vers ImageIO et ca se fait en 2 sec. Tous les formats d'images ne sont pas acceptés, mais le jpeg marche c'est sur.
Marsh Posté le 16-05-2005 à 12:16:04
ok merci c'est exactement ce que je cherchais.
Edit :
(j ai pas utilisé imageIO mais JPEGCodec et JPEGImageEncoder)
Pour ceux que ca interesse voila ce que ca donne (ca marche ) :
Il faut importer :
import java.awt.image.BufferedImage;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public void saveComponentAsJPEG(Component myComponent, String filename) {
Dimension size = myComponent.getSize();
BufferedImage myImage = new BufferedImage(size.width, size.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graph = myImage.createGraphics();
myComponent.paint(graph);
try {
OutputStream out = new FileOutputStream(filename);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(myImage);
out.close();
System.out.println("la courbe a ete sauvée dans le fichier "+filename);
} catch (Exception e) {
System.out.println("Impossible de sauver la courbe : "+e);
}
}
Par contre j'ai encore un petit soucis : mon JPanel a un BackGroung de valeur white, mais le jpg sauvé a un fond noir.
Je debute en java je precise. Si quelqu un a une idée de la ou ca peut venir ... merci.
Marsh Posté le 16-06-2008 à 20:27:39
Super le code, il m'a beaucoup aidé.
Mais je n'arrive pas à supprimer le fond noir :
ni avec myComponent.printAll(graph);
ni avec myComponent.paintAll(graph);
Si quelqu'un peut m'aider, merci
Marsh Posté le 15-05-2005 à 13:23:40
Mon programme trace une courbe dans un JPanel. Et j'aimerais savoir si c est possible et comment faire, pour enregistrer cette courbe dans un fichier image comme un jpg ou autre format.
Merci d'avance, si j'ai pas ete assez precis n'hesitez pas a me le dire je tacherai de detailler.