加载缓冲图像

时间:2014-03-19 03:43:07

标签: path bufferedimage

我一直在努力解决这个问题。我正在尝试从res目录中加载缓冲的图像。我的文件夹层次结构是。

  • MainProjectFolder
    • RES
      • 我要加载的图片
    • SRC
      • 逻辑文件夹
        • loop.java(我的类将字符串传递给要加载的BufferedImageLoader)
      • 图形文件夹
        • BufferedImageLoader.java(将字符串转换为bufferedimage)

但是我一直收到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;
}

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

鉴于文件夹res被定义为项目中的资源文件夹并放在类路径上(实际上,包含文件sprite_sheet_test.png),这应该有效:

loader.loadImage("/sprite_sheet_test.png");

请注意前导/,以确保从资源根目录加载图像。没有它,资源将相对于BufferedImageLoader类的包解析。