我知道问题是什么我只是不知道如何解决它。所以我有一个我想在程序中渲染的图像。我使用ImageIO加载图像。但它似乎与我给它的路径有问题。我使用NetBeans作为我的IDE,我不知道我是否正确保存图像文件。
第一种方法:
public void init(){
BufferedImageLoader loader = new BufferedImageLoader();
try{
spriteSheet = loader.loadImage("/sprite_sheet.png");
}catch(IOException e){
e.printStackTrace();
}
SpriteSheet ss = new SpriteSheet(spriteSheet);
player = ss.grabImage(1,1,32,32);
}
加载器BufferedImageLoader类:
public class BufferedImageLoader {
private BufferedImage image;
public BufferedImage loadImage(String path) throws IOException{
image = ImageIO.read(getClass().getResource(path));
return image;
}
}
我将图像保存在'src'文件夹下的'res'文件夹下。
错误:
Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
谢谢。
答案 0 :(得分:0)
尝试使用文件的绝对路径,或者如果你需要亲戚检查这个post(例如假设你在默认包下有一个res文件夹,你试试“/ res / yourfile”
答案 1 :(得分:0)
为什么需要使用getClass()。getResource()?
ImageIO.read的最简单用法如下:
image = ImageIO.read(new File(path));
您可能还需要在路径中添加文件夹。
spriteSheet = loader.loadImage("/src/res/sprite_sheet.png");