我目前正在嘗試爲我正在處理的小遊戲加載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