0

Image を として読み取ろうとしていますInputStream。しかし、何らかの理由で私はいつもIllegalArugmentException.

これが私のコードです:

BufferedImage i = null; 
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
4

3 に答える 3

2

理由:

リソースが評価されるnullため、例外が発生します

API ドキュメント

例外: IllegalArgumentException - 入力がの場合null

解決:

res/graphics/whateverルートのクラスパスにある場合、null 以外を返します

于 2013-07-28T06:12:05.337 に答える
0

基本的に、その名前のリソースは存在しません。リソースは、名前の付いたクラスと同じ方法でクラスローダーによって配置されres.graphics.whateverます。もちろん、より関連性の高いものがあります。したがって、同じメソッドを使用してクラスをアクセス可能にし、このリソースをアクセス可能にします。

于 2013-07-28T06:11:50.210 に答える
0

希望"/res/graphics" + pathする値に評価されないようです。

BufferedImage以下は、使用方法です。

public File myImg = new File("someImage.png");
BufferedImage in = ImageIO.read(myImg); 
//Just an example
BufferedImage newImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB);
于 2013-07-28T06:15:06.403 に答える