Bonjour, voilà je vous poste mon code et l'erreur que j'obtiens
Voilà l'erreur :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44 import java.awt.Image; import java.awt.image.BufferedImage; import java.io.DataInputStream; import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class LectureImage { public LectureImage(URL url) { this.url=url; } public Image Connection() { try { URLConnection urlC= url.openConnection(); System.out.println(url); //Accès au toolkit java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit(); //lecture de l'image Image image = toolkit.getImage(url); BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB ); --------------->> l'erreur se situe à la création de mon BufferedImage //Lecture de tous les pixels int w = bufferedImage.getWidth(); int h = bufferedImage.getHeight(); System.out.println(w+" "+h); int[] rgbs = new int[w*h]; //On crée l'espace neccessaire bufferedImage.getRGB(0,0,w,h,rgbs,0,w); return image; } catch (IOException e) { e.printStackTrace(); return null; } }
Donc mon problème c'est que l'image je ne veux pas la sauvegarder en un quelconque format je voudrais travailler directement dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Exception in thread "main" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0 at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source) at java.awt.image.BufferedImage.<init>(Unknown Source) at LectureImage.Connection(LectureImage.java:45) at TP1Main.main(TP1Main.java:31)
Le vrai problème c'est que je ne sais pas comment récupérer le width et le height de mon image avant de créer le BufferedImage car il faut apparemment passer un ImageObserver en paramètre mais bon je sais pas trop comment ça marche.
Une solution je pense serait de sauvegarder mon image puis de travailler sur la copie pour récupérer le width et le height mais bon se serait lourd je trouve.
Si quelqu'un a une idée, merci beaucoup !!
Partager