Javaで画像ファイルを読んでいます
java.awt.Image img = Toolkit.getDefaultToolkit().createImage(filePath);
一部のシステムでは、これが機能せず、代わりに、sun/awt/motif/MToolkit について不平を言う AWTError がスローされます。
画像ファイルから java.awt.Image オブジェクトを作成するには、他にどのような方法がありますか?
ImageIO には、さまざまなソースから画像を読み取ることができるいくつかの静的メソッドがあります。あなたの場合で最も興味深いのは次のとおりです。
BufferedImage read(ImageInputStream stream)
BufferedImage read(File input)
BufferedImage read(InputStream input)
コード内をチェックしました。これは ImageReader 抽象クラスを使用し、3 つの実装者があります: JPEGReader。PNGReader と GIFReader。これらのクラスと BufferedImage は明らかにネイティブ メソッドを使用していないため、常に機能するはずです。
あなたが持っている AWTError は、ヘッドレス構成で Java を実行しているため、または Windows ツールキットに何らかの問題があるためのようです。ただし、特定のエラーを見ずに言うのは難しいです。この解決策により、(おそらく) 画像を読み取ることができますが、画像で何をしたいかによっては、後で表示しようとすると AWTError がスローされる可能性があります。
一部のシステムでは、Java パラメータとして「-Djava.awt.headless=true」を追加すると役立つ場合があります。