# Bild einlesen



## spliX (17. Jun 2004)

Hallo Zusammen

ich möchte ein Bild einlesen. Nun habe ich das Problem, dass ich immer den vollständigen Pfad angeben muss.

zB.  img = getToolkit().getImage( "C:\\Programme\\eclipse\\workspace\\gui\\pic.jpg" );

gibt es eine Möglichkeit, den Pfad autmatisch auszulesen, so dass man nur noch das Bild angeben muss?

zB. img = getToolkit().getImage(getPath() + "pic.jpg" );

Vielen Dank für eure Hilfe

spliX


----------



## Stefan1200 (17. Jun 2004)

?

Wenn das Bild im selben Ordner liegt, wie die class Dateien, dann reicht es, wenn du nur den Dateinamen angibst.
Bei mir jedenfalls.


----------



## bygones (17. Jun 2004)

ich würde eher mit dem ClassLoader arbeiten - da später, wenn das ganze mal in einem jar ist die Pfade nicht mehr stimmen....


```
protected static final ImageIcon SIGNATURE_ICON = new ImageIcon(ClassLoader.getSystemResource("sig.gif"));
```


----------



## spliX (17. Jun 2004)

@Stefan1200 das Bild wird nicht angezeigt, wenn ich nur den Dateinamen angebe. 

@deathbyaclown dies ist mein genauer Code um das Bild einzulesen, soll ich einfach img = get Toolkit...
durch  ImageIcon img = new ImageIcon(ClassLoader.getSystemResource("sig.gif"));?


```
img = getToolkit().getImage( "C:\\Programme\\eclipse\\workspace\\gui\\pic.jpg" );
	MediaTracker tracker = new MediaTracker(this);
	tracker.addImage(img,0);
	try{tracker.waitForID(0);}
	catch(InterruptedException exception){}	
	}
	

public void paintComponent(Graphics g){
		
		super.paintComponents(g);
		
		Graphics2D g2 = (Graphics2D)g;
		g2.drawImage(img,0,0,this);
	}
```

Danke Gruss spliX


----------



## bygones (17. Jun 2004)

habe noch nie mit dem MediaTracker gearbeite - daher weiß ich das nicht...

Ansonsten kann ich nur sagen, dass ich mit meinem Code oben die Bilder laden kan....


----------



## L-ectron-X (17. Jun 2004)

Ich kenne den MediaTracker nur in Verbindung mit Applets.
Bei einer lokalen Anwendung (Applikation) sollte die Rechnerleistung ausreichen, um die Bilder schnell zu laden.
Was ich mich noch frage ist, ob hier der reguläre Ausdruck *\\* angebracht ist. ???:L


----------



## Roar (17. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> Was ich mich noch frage ist, ob hier der reguläre Ausdruck *\\* angebracht ist. ???:L



wieso regulärre ausdruck? das ist einfach nur ein backslash, weil windoof als pfadangabe den backslash verwendet. und weil der backslash einen escape charatcter anzeigt muss er selbt escaped verweden...


----------



## Guest (17. Jun 2004)

Es funktionert alles nicht.

Ich kann nur mit absoluten Pfaden arbeiten, sonst gibt es immer eine Fehlermeldung!


nochmals kurz meine Situation:

Ich muss ein Bild zeichen -> mit Graphics2D
Alle Klassen und Bilder sind im gleichen Package.

Kann mir vielleicht jemand ein Beispiel posten? (mit relativen Pfad) 

Danke Gruss spliX


----------

