toolkit vs. imageIO

steff3

Bekanntes Mitglied
ich habe hier den fall, dass ich unter macOS keine probleme habe
unter windows aber

Java:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
	at java.awt.Image.getScaledInstance(Unknown Source)

um dieses stück code geht es

Java:
	//InputStream streamImage = this.getClass().getResourceAsStream("/"+currentBackgroundMap+".jpg");
		
		String pathToImage = getClass().getResource("/").getPath() + currentBackgroundMap	+ ".jpg";

		//to slow
		//img = ImageIO.read(streamImage);
		backgroundImage = getToolkit().getImage(pathToImage);
		
		
		mt.addImage(backgroundImage, 0);
		try {

			mt.waitForID(0);
		} catch (InterruptedException e) {
			
		}
		int mapWidth = (int) (dx * 100 * backgroundImage.getWidth(this)); 
		int mapHeigth = (int) (dy * 100 * backgroundImage.getHeight(this));

		backgroundImage = backgroundImage.getScaledInstance(mapWidth, -mapHeigth, Image.SCALE_FAST);

macOS liefert mir mit backgroundImage.getWidth(this) die richtige größe, windows hingegen...
egal ob 1.5 oder 6

warum, ich dachte der mediatracker verhindert genau das mit waitForID

grundsätzlich bin ich imageIO nicht abgeneigt, aber warum ist das so wahnsinnig langsam im vergleich?
 

André Uhres

Top Contributor
Versuch mal "ImageIcon". Die Klasse benutzt auch das Toolkit aber du brauchst keinen eigenen MediaTracker denn der ist dort bereits integriert. Beispiel:
Java:
backgroundImage = new ImageIcon(getClass().getResource("/mypackage/mypicture.jpg")).getImage();
 

L-ectron-X

Gesperrter Benutzer
Der Umgang mit ImageIO ist möglicherweise einfacher und performanter:
Java:
backgroundImage = ImageIO.read(getClass().getResource("/mypackage/mypicture.jpg"));
 

steff3

Bekanntes Mitglied
Leider hat steff3 genau das bemängelt, dass nämlich "ImageIO" viel langsamer sei als das "Toolkit"!

richtig, aus gründen die mir nicht bekannt sind, ist die lösung mit imageIO sehr langsam

ImageCon funktioniert sehr gut, obwohl es gefühlt auch nicht die geschwindigkeit vom toolkit + macos bringt...
irgendwas ist da anders, aber scheinbar die beste lösung soweit
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JavaFX - Toolkit not initialized AWT, Swing, JavaFX & SWT 6
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
F UI Toolkit programmieren AWT, Swing, JavaFX & SWT 9
S Eigene GUI (evt. Toolkit) AWT, Swing, JavaFX & SWT 10
E Problem mit Toolkit.getImage() AWT, Swing, JavaFX & SWT 1
Z Cannot load AWT toolkit AWT, Swing, JavaFX & SWT 3
C Welches Toolkit für GUI AWT, Swing, JavaFX & SWT 2
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
M "ImageIO.read()" liest Bild nicht richtig ein AWT, Swing, JavaFX & SWT 3
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
B Problem mit ImageIO.write() AWT, Swing, JavaFX & SWT 7
B ImageIO und animerte gifs? AWT, Swing, JavaFX & SWT 4
N ImageIO Endung mitgeben AWT, Swing, JavaFX & SWT 4
M ImageIO, Bilderordner durchblättern AWT, Swing, JavaFX & SWT 4
B ImageIO gif Dateien laden AWT, Swing, JavaFX & SWT 7
T Swing ImageIO - nicht abfangbare IOException AWT, Swing, JavaFX & SWT 5
B ImageIO.read() zweimal hintereinander aus ObjectInputStream funktioniert nicht AWT, Swing, JavaFX & SWT 4
B Problem mit imageIO und ImageIcon AWT, Swing, JavaFX & SWT 5
U ImageIO.read verursacht heap space AWT, Swing, JavaFX & SWT 15
G Problem mit BufferedImage und imageIO AWT, Swing, JavaFX & SWT 2
H ImageIO.write-Probleme, Speicherüberlauf und Absturz AWT, Swing, JavaFX & SWT 12
I BMP mit ImageIO schreiben AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben