BildLader

Dogge

Aktives Mitglied
Guten Abend!

Mein Applet soll die Anzahl der Pixel eines Bildes in <Anzahl Pixel Breite> * <Anzahl Pixel Höhe> wiedergeben( in der Konsole mit Sys.out.println(....)).
Da kommt aber ständig was Falsches wie 1/1 oder so raus, was nicht sein kann, da es ein großes Bild ist:D. Ok das Bild ist im selben Package wie mein Applet.(Es soll ein Applet sein, also nichts mit >>>VERSUCH DOCH NE APPLIKATION<<<)

Supi:toll:
Also hier ist der Javacode(Ich hab MediaTracker verwendet)
Java:
import java.awt.MediaTracker;


public class BildLader extends java.applet.Applet {
	
	private java.awt.Image image;
	private String bildName;
	int breite;
	int hoehe;
	MediaTracker mediaTracker;
	public void init() {
		bildName=getParameter("bildName");
		image=getImage(getCodeBase(),bildName);
		 breite = image.getWidth(this);
		 hoehe = image.getHeight(this);
		 mediaTracker=new MediaTracker(this);
		 mediaTracker.addImage(image,0);
		 try {
			 mediaTracker.waitForID(0);
		 } catch(InterruptedException ie) {
			 System.out.println("Bildladeevorgang unterbrochen " + ie.getMessage());
		 }
		 System.out.println("Bildgroesse"+breite +"/"+hoehe);
		
	}
	
	
	public void paint(java.awt.Graphics g) {
		g.drawImage(image,0,0,this);
	
		
	}

}

???:L Ihr müsst zugeben, dass der Code richtig aussieht.:)
 
P

PlanetFed

Gast
Kann es sein das bei den get() Methoden, [c]this[/c] mit so was
Java:
boolean 	imageUpdate(Image img, int infoflags, int x, int y, int width, int height)
This method is called when information about an image which was previously requested using an asynchronous interface becomes available.

ausgewechselt werden müsste ?
 

Dogge

Aktives Mitglied
[EDIT]K.A.[/EDIT]

Bei meiner get... ist alles sehr wahrscheinlich richtig. Dein Zitat verwendet x,y. Das will ich rausbekommen.:)
 
Zuletzt bearbeitet:

Dogge

Aktives Mitglied
Du rufst getWidth auf, bevor das Bild geladen ist ...

Sag mir bitte wie ich "bevor" verstehen soll. Ich dachte das tue ich schon ,da getWidth(this) in der init() Methode steckt und die zuallererst gestartet wird.

[EDIT]
Hab versucht get... woanders in der init() unterzubringen; ohne Erfolg:( .
[/EDIT]
 
Zuletzt bearbeitet:

HoaX

Top Contributor
Du startest erst danach den MediaTracker... da rächt es sich wenn man Code nicht selbst schreibt sondern ohne nachdenken kopiert ;)
 

Oben