Image を として読み取ろうとしていますInputStream
。しかし、何らかの理由で私はいつもIllegalArugmentException
.
これが私のコードです:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
Image を として読み取ろうとしていますInputStream
。しかし、何らかの理由で私はいつもIllegalArugmentException
.
これが私のコードです:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
理由:
リソースが評価されるnull
ため、例外が発生します
例外: IllegalArgumentException - 入力がの場合
null
。
解決:
res/graphics/whatever
ルートのクラスパスにある場合、null 以外を返します
基本的に、その名前のリソースは存在しません。リソースは、名前の付いたクラスと同じ方法でクラスローダーによって配置されres.graphics.whatever
ます。もちろん、より関連性の高いものがあります。したがって、同じメソッドを使用してクラスをアクセス可能にし、このリソースをアクセス可能にします。
希望"/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);