Как прочитать изображение на Java, когда Toolkit.getDefaultToolkit() выдает AWTError?

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

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Image i = ImageIO.read(InputStream in);

Javadoc также предложит дополнительную информацию.

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top