我想读的图像作为InputStream
。 但由于某些原因,我总是得到一个IllegalArugmentException
。
这里是我的代码:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
我想读的图像作为InputStream
。 但由于某些原因,我总是得到一个IllegalArugmentException
。
这里是我的代码:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
原因:
你的资源的计算结果为null
,这就是为什么例外
API文档
抛出:IllegalArgumentException -如果输入为
null
。
解:
如果res/graphics/whatever
是在类路径的根目录,然后将返回不为空
基本上,该名称的资源不存在。 资源位于通过相同的方式与名称的类的类加载器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);