pb initialisation BufferedImage
Bonjour, voilà je vous poste mon code et l'erreur que j'obtiens
Code:
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;
}
} |
Voilà l'erreur :
Code:
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) |
Donc mon problème c'est que l'image je ne veux pas la sauvegarder en un quelconque format je voudrais travailler directement dessus.
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 !!