Bonjour,
Je vous explique mon problème. Je dois réaliser une application permettant de faire des modifications sur une image, tel qu'une rotation, changement de couleur, ect. Je dois, après avoir effectué les modifications, pouvoir enregistrer l'image.
Ce que je voulais faire donc était de loader mon image à partir du fichier dans un imageBuffered, et ensuite, la dessiner grâce à un graphics2d. Jusque là tout va bien, j'arrive à faire ma rotation sur l'image et à l'afficher. Mais ensuite je dois l'enregistrer. On ne peut pas (Enfin je crois) enregistrer un Graphics2d, et donc, je dois convertir mon graphics2d en imageBuffered.
Y a t-il un moyen simple de faire ce que je veux?
Merci d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public void paintComponent(Graphics g) { super.paintComponent(g); try { File fichier = new File(this.imageUrl); image = ImageIO.read(fichier); } catch (IOException e) { e.printStackTrace(); } Graphics2D g2d = (Graphics2D)g; AffineTransform tfm = new AffineTransform(); tfm.rotate(Math.toRadians(180),image.getWidth()/2,image.getHeight()/2); g2d.setTransform(tfm); g2d.drawImage(image, 0, 0, null); File output = new File("c:\\test.gif"); try { //J'ai mis ici image, mais évidemment ce n'est pas ce qu'il faut. Il me faudrait le buffered image résultant de la conversion du graphics2d ImageIO.write(image, "gif", output); } catch (IOException e) { e.printStackTrace(); } }
Partager