Come leggi un'immagine in Java quando Toolkit.getDefaultToolkit () genera un AWTError?

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

  •  02-07-2019
  •  | 
  •  

Domanda

Sto leggendo i file di immagini in Java usando

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

Su alcuni sistemi questo non funziona, ma genera un AWTError lamentandosi di sun / awt / motif / MToolkit.

In quale altro modo è possibile creare un oggetto java.awt.Image da un file di immagine?

È stato utile?

Soluzione

Ho letto le immagini usando ImageIO .

Image i = ImageIO.read(InputStream in);

Anche javadoc offrirà ulteriori informazioni.

Altri suggerimenti

Esistono diversi metodi statici in ImageIO che consentono di leggere immagini da fonti diverse. I più interessanti nel tuo caso sono:

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

Ho controllato all'interno del codice. Utilizza la classe astratta ImageReader e sono disponibili tre implementatori: JPEGReader. PNGReader e GIFReader. Queste classi e BufferedImage non usano apparentemente alcun metodo nativo, quindi dovrebbe sempre funzionare.

Sembra che AWTError che hai sia perché stai eseguendo java in una configurazione senza testa, o che il toolkit di Windows abbia qualche tipo di problema. Senza guardare l'errore specifico è difficile da dire però. Questa soluzione ti permetterà di leggere l'immagine (probabilmente), ma a seconda di cosa vuoi farne, AWTError potrebbe essere lanciato in seguito mentre provi a visualizzarlo.

Su alcuni sistemi aggiungendo " -Djava.awt.headless = true " come parametro java può aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top