IllegalArgumentException输入== null

时间:2013-07-28 06:07:05

标签: java image embedded-resource javax.imageio illegalargumentexception

我正在尝试将图片读作InputStream。但出于某种原因,我总是得到IllegalArugmentException

这是我的代码:

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

3 个答案:

答案 0 :(得分:2)

<强>原因:

您的资源评估为null,这就是异常

的原因

API doc

  

抛出:       IllegalArgumentException - 如果输入为null

<强>解决方案:

如果res/graphics/whatever在root的classpath中,那么它将返回not null

答案 1 :(得分:0)

基本上,名称的资源不存在。资源由类加载器以与名为res.graphics.whatever的类相同的方式定位,当然更为相关。因此,只需使用相同的方法使类可访问,即可访问此资源。

答案 2 :(得分: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);