BufferedImage没有从png加载

时间:2016-09-23 23:37:42

标签: java bufferedimage

我正在尝试从spritesheet中加载一张图片并且已经有一段时间了,因为我已经制作了一个2D游戏,所以我想我可能已经忘记了一些重要的事情。我已将res添加到类文件夹中并且已经尝试了很长时间来加载它但没有成功。我可能已将它加载到错误的构建路径中,但我不这么认为。 这是错误:

Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at me.xthegamerplayz.Dodger.graphics.ImageLoader.loadImage(ImageLoader.java:12)
    at me.xthegamerplayz.Dodger.graphics.Assets.init(Assets.java:15)
    at me.xthegamerplayz.Dodger.Dodger.init(Dodger.java:30)
    at me.xthegamerplayz.Dodger.Dodger.run(Dodger.java:88)
    at java.lang.Thread.run(Unknown Source)

这是我加载图片的地方

public static BufferedImage loadImage(String path){
        try {
            return ImageIO.read(ImageLoader.class.getResource(path));
        } 
        catch (IOException e) { 
            e.printStackTrace(); 
            System.exit(1);
        }
        return null; 
    }

最后这是我加载图片的地方:

    public static void init() {
    sheet = new SpriteSheet(ImageLoader.loadImage("/res/entities/entitySprites.png"));

    player = sheet.crop(0, 0, width, height);
    enemy = sheet.crop(1, 0, width, height);
}

有没有人看到它没有加载的原因?

1 个答案:

答案 0 :(得分:2)

无法找到资源。您可以检查jar格式的zip格式。很可能路径开始出错了。它也区分大小写。

sheet = new SpriteSheet(ImageLoader.loadImage("/entities/entitySprites.png"));