Como você ler uma imagem em Java quando Toolkit.getDefaultToolkit () lança uma AWTError?

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Estou a ler arquivos de imagem em Java usando

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

Em alguns sistemas isso não funciona, em vez lança um AWTError reclamando sol / awt / motivo / MToolkit.

Como você pode criar um objeto java.awt.Image a partir de um arquivo de imagem?

Foi útil?

Solução

Eu li imagens usando ImageIO .

Image i = ImageIO.read(InputStream in);

O javadoc vai oferecer mais informações também.

Outras dicas

Há vários métodos estáticos em ImageIO que permitem ler imagens de diferentes fontes. O mais interessante no seu caso são:

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

Eu verifiquei dentro no código. Ele usa a classe abstrata ImageReader, e há três implementadores: JPEGReader. PNGReader e GIFReader. Essas classes e BufferedImage não use quaisquer métodos nativos, aparentemente, por isso deve sempre trabalhar.

Parece que o AWTError que você tem é porque você está executando java em uma configuração sem cabeça, ou que as janelas Toolkit tem algum tipo de problema. Sem olhar para o erro específico é difícil dizer embora. Esta solução irá permitir que você a ler a imagem (provavelmente), mas dependendo do que você quer fazer com ele, o AWTError pode ser jogado mais tarde como você tentar exibi-lo.

Em alguns sistemas acrescentando "-Djava.awt.headless = true" como parâmetro java pode ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top