Servlet getWidth(); - getHight(); Problem

Hallo,

ich habe vor in einem Servlet Bilder zu skalieren. Nun die Methode habe ich schon, aber leider bekomme ich immer eine Exception:

[WR]
method getWidth in class java.awt.Image cannot be applied to given types
required: java.awt.image.ImageObserver
found: no arguments

method getHight in class java.awt.Image cannot be applied to given types
required: java.awt.image.ImageObserver
found: no arguments
[/WR]

Meine Methode sieht wie folgt aus (Auszug):

Java:
// lesen
        Image image = new ImageIcon(load_image + profil_image).getImage();

        // skalieren
        int newWidth = image.getWidth()/2;
        int newHeight = image.getHeight()/2;
        image = image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
Wenn ich
Code:
int newWidth = image.getWidth(null)/2
schreibe kommt folgender Fehler:

[WR]
java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
[/WR]

Wer kann mir auf die Sprünge helfen?

LG Purzel
 
S

SlaterB

dass du null als Observer angeben kannst hast du ja schon selbst herausgefunden,
wenn du dazu wirklich mehr wissen willst, kannst du doch offensichtlich ImageObserver & Co. nachschlagen,
so gehts aber wahrscheinlich

der Code müsste mit richtigen Bild funktionieren, Breite 0 spricht für ein nicht vorhandenenes Bild,
was ist 'load_image + profil_image' zusammen?
erstelle eine String-Variable, gib diese aus, erstelle ein File-Objekt, prüfe deren exists()-Methode,
gibt den CanonicalPath aus, kürze den Path auf das Parent-Verzeichnis, erstelle dazu ein File, liste die enthaltenen Dateien,
prüfe ob dein Bild darunter ist

das Bild ist nicht zufällig in einem Jar versteckt?

kleine Detail-Info wäre noch, ob image.getWidth(null) -1 ist, was wirklich für nicht gefunden steht,
oder 0, dann wäre es wohl komplizierter,
/2 geteilt ist beides 0 ;)
 
Die Methoden getWidth und getHeight der (abstrakten!) Klasse Image erwarten als Argument eine ImageObserver-Instanz, du aber übergibst nichts!

Verwende statt Image mal BufferedImage

Gruß Fant
 
dass du null als Observer angeben kannst hast du ja schon selbst herausgefunden,
wenn du dazu wirklich mehr wissen willst, kannst du doch offensichtlich ImageObserver & Co. nachschlagen,
so gehts aber wahrscheinlich

der Code müsste mit richtigen Bild funktionieren, Breite 0 spricht für ein nicht vorhandenenes Bild,
was ist 'load_image + profil_image' zusammen?
erstelle eine String-Variable, gib diese aus, erstelle ein File-Objekt, prüfe deren exists()-Methode,
gibt den CanonicalPath aus, kürze den Path auf das Parent-Verzeichnis, erstelle dazu ein File, liste die enthaltenen Dateien,
prüfe ob dein Bild darunter ist

das Bild ist nicht zufällig in einem Jar versteckt?

kleine Detail-Info wäre noch, ob image.getWidth(null) -1 ist, was wirklich für nicht gefunden steht,
oder 0, dann wäre es wohl komplizierter,
/2 geteilt ist beides 0 ;)
Danke für den Hinweis! Ich hatte in der Variable "load_image" einen Verzeichnistrenner vergessen und dadurch wurde das Bild nicht gefunden. *schäm* Ich habe zusätzlich noch eine Abfrage eingebaut, die prüft, ob das Bild existiert. Danke!!

LG purzel
 
Passende Stellenanzeigen aus deiner Region:

Oben