我一直在努力解决这个问题。我正在尝试从res目录中加载缓冲的图像。我的文件夹层次结构是。
但是我一直收到input = null错误。我如何指向我的图像文件?
My Loop课程
BufferedImageLoader loader = new BufferedImageLoader();
try{
spriteSheet = loader.loadImage("/res/sprite_sheet_test.png");
}catch(IOException e){
e.printStackTrace();
}
My BufferedImageLoaderClass
public BufferedImage loadImage(String path)throws IOException{
url = this.getClass().getResource(path);
image = ImageIO.read(url);
newImage = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = newImage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
return newImage;
}
感谢您的帮助!!
答案 0 :(得分:0)
鉴于文件夹res
被定义为项目中的资源文件夹并放在类路径上(实际上,包含文件sprite_sheet_test.png
),这应该有效:
loader.loadImage("/sprite_sheet_test.png");
请注意前导/
,以确保从资源根目录加载图像。没有它,资源将相对于BufferedImageLoader
类的包解析。