Programmation Java Swing/Créer une image

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche


Une application peut avoir besoin de créer une image, soit pour réutiliser cette image et l'afficher plusieurs fois en évitant de tout redessiner à nouveau, soit pour créer un fichier externe utilisable dans une autre application.

La création d'une image peut se faire aussi simplement que le dessin d'un composant, en utilisant un contexte graphique.

Créer une image[modifier | modifier le wikicode]

La classe java.awt.image.BufferedImage permet de créer une nouvelle image. Le type d'image et sa taille en pixels doit être spécifié au constructeur.

Exemple :

// Image 200x100 pixels
// Couleurs RVB sur 8 bits regroupés en pixels de type entier (int) :
BufferedImage b_image = new BufferedImage(200,100, BufferedImage.TYPE_INT_RGB);

Dessiner le contenu[modifier | modifier le wikicode]

Le contenu est ensuite dessiné en obtenant un contexte graphique, comme celui utilisé pour dessiner un composant :

Graphics2D g = b_image.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0,0,200,100);
g.setColor(Color.BLUE);
g.drawRect(100,50,50,25);
g.dispose(); // Libérer le contexte après utilisation

Comme le contexte graphique est de la même classe que celui utilisé pour le dessin d'un composant, les mêmes méthodes s'appliquent, donc notamment la méthode addRenderingHints pour améliorer la qualité de l'image.

Enregistrer l'image[modifier | modifier le wikicode]

Enregistrer l'image se fait en utilisant la classe javax.imageio.ImageIO, en appelant la méthode statique write et en lui passant l'image, le nom du format d'image, et le chemin du fichier (de type java.io.File):

ImageIO.write(b_image, "png", new File("D:\Temp\image.png"));