我正在尝试将图片读作InputStream
。但出于某种原因,我总是得到IllegalArugmentException
。
这是我的代码:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
答案 0 :(得分:2)
<强>原因:强>
您的资源评估为null
,这就是异常
抛出: 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);