Wie Sie ein Bild in Java lesen, wenn Toolkit.getDefaultToolkit () eine AWTError wirft?

StackOverflow https://stackoverflow.com/questions/119857

  •  02-07-2019
  •  | 
  •  

Frage

Ich lese Bilddateien in Java mit

java.awt.Image img = Toolkit.getDefaultToolkit().createImage(filePath);

Auf einigen Systemen dies nicht funktioniert, es stattdessen wirft einen AWTError beschweren sich über Sonne / AWT / Motiv / MToolkit.

Wie sonst kann man ein java.awt.Image Objekt aus einer Bilddatei erstellen?

War es hilfreich?

Lösung

Ich lese Bilder mit ImageIO .

Image i = ImageIO.read(InputStream in);

Die javadoc wird weitere Informationen auch bieten.

Andere Tipps

Es gibt verschiedene statische Methoden in ImageIO, mit denen Bilder aus verschiedenen Quellen zu lesen. Die interessantesten in Ihrem Fall sind:

BufferedImage read(ImageInputStream stream) 
BufferedImage read(File input)
BufferedImage read(InputStream input)

Ich habe innen im Code. Es nutzt die Imagereader abstrakte Klasse, und es gibt drei Implementierer: JPEGReader. PNGReader und GIFReader. Diese Klassen und BufferedImage keine nativen Methoden offenbar, so sollte es immer funktionieren.

Es scheint, dass die AWTError Sie haben, ist, weil Sie Java in einer Headless-Konfiguration ausgeführt werden, oder dass der Windows-Toolkit eine Art von Problem haben. Ohne Blick auf die spezifischen Fehler ist schwer zu sagen, obwohl. Diese Lösung ermöglicht es Ihnen, das Bild (wahrscheinlich) zu lesen, aber je nachdem, was Sie damit tun wollen, könnte die AWTError später geworfen werden, wie Sie versuchen, um es anzuzeigen.

Auf einigen Systemen Hinzufügen von "-Djava.awt.headless = true" als Java-Parameter helfen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top