6

Javaで画像ファイルを読んでいます

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

一部のシステムでは、これが機能せず、代わりに、sun/awt/motif/MToolkit について不平を言う AWTError がスローされます。

画像ファイルから java.awt.Image オブジェクトを作成するには、他にどのような方法がありますか?

4

3 に答える 3

6

ImageIOを使用して画像を読み取ります。

Image i = ImageIO.read(InputStream in);

javadoc も詳細情報を提供します。

于 2008-09-23T08:35:32.163 に答える
2

ImageIO には、さまざまなソースから画像を読み取ることができるいくつかの静的メソッドがあります。あなたの場合で最も興味深いのは次のとおりです。

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

コード内をチェックしました。これは ImageReader 抽象クラスを使用し、3 つの実装者があります: JPEGReader。PNGReader と GIFReader。これらのクラスと BufferedImage は明らかにネイティブ メソッドを使用していないため、常に機能するはずです。

あなたが持っている AWTError は、ヘッドレス構成で Java を実行しているため、または Windows ツールキットに何らかの問題があるためのようです。ただし、特定のエラーを見ずに言うのは難しいです。この解決策により、(おそらく) 画像を読み取ることができますが、画像で何をしたいかによっては、後で表示しようとすると AWTError がスローされる可能性があります。

于 2008-09-23T08:45:15.823 に答える
0

一部のシステムでは、Java パラメータとして「-Djava.awt.headless=true」を追加すると役立つ場合があります。

于 2008-09-23T09:50:53.027 に答える