Как вы читаете изображение в Java, когда Toolkit.getDefaultToolkit () генерирует ошибку AWTError? - PullRequest
6 голосов
/ 23 сентября 2008

Я читаю файлы изображений в Java, используя

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

В некоторых системах это не работает, вместо этого он выдает AWTError с жалобой на sun / awt / motif / MToolkit.

Как еще можно создать объект java.awt.Image из файла изображения?

Ответы [ 3 ]

6 голосов
/ 23 сентября 2008

Я читаю изображения, используя ImageIO .

Image i = ImageIO.read(InputStream in);

Javadoc также предоставит больше информации.

2 голосов
/ 23 сентября 2008

В ImageIO есть несколько статических методов, позволяющих считывать изображения из разных источников. Наиболее интересными в вашем случае являются:

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

Я проверил внутри в коде. Он использует абстрактный класс ImageReader, и есть три разработчика: JPEGReader. PNGReader и GIFReader. Эти классы и BufferedImage, по-видимому, не используют никаких собственных методов, поэтому они всегда должны работать.

Похоже, что у вас есть AWTError, потому что вы используете Java в безголовой конфигурации, или что у инструментария Windows есть какая-то проблема. Хотя, не глядя на конкретную ошибку, сказать сложно. Это решение позволит вам прочитать изображение (возможно), но в зависимости от того, что вы хотите с ним сделать, AWTError может появиться позже при попытке его отобразить.

0 голосов
/ 23 сентября 2008

В некоторых системах добавление «-Djava.awt.headless = true» в качестве параметра java может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...