Hallo,
mein Applet liest alle Bilder aus einen Verzeichnis und zeigt diese an.
Da die Bilder u.U. verschiedene Größen haben würde ich sie gerne entsprechend ihrer Größe anzeigen.
Über den Befehl getWidth()und getHeight() sollte ich eigentlich die Größe des Bildes bekommen. Bei manchen Bildern bekomme ich allerdings für beide Werte -1.
Warun ?
Danke
Arni
Hallo,
könntest du vielleicht Code posten, wie du die Bilder genau einliest, damit wir sehen welche Klassen du dazu verwendest?
mfg
deconstruct
Hier kommt der Applet-Code:
Image image ;
ReadImage readImage = new ReadImage();
ImgPanel imgPanel ;
String pfad = „C:\common\homepage1\bilder\mensch_natur\images“ ;
readImage.readImages(pfad);
i = 0;
image = readImage.getImage(i);
setLayout ( null ) ;
imgPanel = new ImgPanel ( image ) ;
add ( imgPanel ) ;
imgPanel.setSize(imgPanel.img.getWidth(this),imgPanel.img.getHeight(this));
*******************************************
Über einen Button im Applet lese ich das nächste Bild
if ( i [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Moin
Über den Befehl getWidth()und getHeight() sollte ich
eigentlich die Größe des Bildes bekommen. Bei manchen Bildern
bekomme ich allerdings für beide Werte -1.
Warun ?
Wenn du die Bilder lädst und irgendwann ein Image-Object bekommst enthält dieses Object noch gar kein Bild, sondern nur die URL wo sich das Bild befindet. Geladen wird also später. Und erst wenn das Bild aus dem Netz angekommen ist und komplett decodiert wurde geben die Methoden sinnvolle Werte zurück. Das Laden fängt an wenn die JVM Lust hat oder das Bild angezeigt wird. Das kann man aber erzwingen:
MediaTracker ME = new MediaTracker (new JFrame()); // kanns auch das Applet-Fenster angeben
ME.addImage (Applet.getImage(URL),0);
try {
ME.waitForAll();
}catch (Exception E){
//das sollte nicht passieren… das Bild war wohl nicht so gut.
}
Ab hier geben die Methoden SICHER sinnvolles zurück.
cu