我目前正在尝试为我正在处理的小游戏加载spritesheet。问题是,这段代码在这里:工作正常的ImageIO.read表达式突然停止这样做
private void load(){
try {
BufferedImage image = ImageIO.read(Sprite.class.getResource(path));
int w = image.getWidth();
int h = image.getHeight();
image.getRGB(0, 0, w, h, pixels, 0, w);
} catch (IOException e) {
e.printStackTrace();
}
}
ImageIO.read()
总是返回null
。它也不会抛出任何例外。很明显,我在下一行发生错误,因为我打电话image.getWidth()
,因为图像是null
。
真正令我困扰的是,10分钟前相同的代码工作得很好。我没有改变任何东西,只是一个根本不影响阅读过程的价值;即使改回它也不会做任何事情。
有没有人知道该怎么办?
您应该经常检查'ImageIO.read'的返回值,因为当图像无法解码时,返回空值是正常的返回值http://docs.oracle.com/javase/6/docs/ API /的javax/ImageIO的/ ImageIO.html#读取(java.net.URL中)。 – Michael