Comment lire une image en Java lorsque Toolkit.getDefaultToolkit () lève une AWTError?

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

  •  02-07-2019
  •  | 
  •  

Question

Je lis des fichiers image en Java avec

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

Sur certains systèmes, cela ne fonctionne pas, il envoie une erreur AWTError pour se plaindre de sun / awt / motif / MToolkit.

Sinon, comment pouvez-vous créer un objet java.awt.Image à partir d'un fichier image?

Était-ce utile?

La solution

Je lis des images avec ImageIO .

Image i = ImageIO.read(InputStream in);

Le javadoc offrira également plus d’informations.

Autres conseils

Il existe plusieurs méthodes statiques dans ImageIO qui permettent de lire des images provenant de différentes sources. Les plus intéressants dans votre cas sont:

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

J'ai vérifié l'intérieur du code. Il utilise la classe abstraite ImageReader, et il existe trois implémenteurs: JPEGReader. PNGReader et GIFReader. Ces classes et BufferedImage n’utilisent apparemment aucune méthode native, donc cela devrait toujours fonctionner.

Il semble que l'erreur AWTE que vous avez est due au fait que vous exécutez Java dans une configuration sans interface utilisateur ou que le toolkit Windows a un problème. Sans regarder l'erreur spécifique est difficile à dire cependant. Cette solution vous permettra (probablement) de lire l’image, mais en fonction de ce que vous voulez en faire, il se peut que l’erreur AWTError soit émise ultérieurement lorsque vous essayez de l’afficher.

Sur certains systèmes, l'ajout de "--Djava.awt.headless = true " comme paramètre java peut aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top