所以對於wanky標題。沒有想出一個簡短的懷孕描述。getScaledInstance後的高度和寬度-1 java Image
我的問題是這行代碼:
ii = new ImageIcon("images/player.png");
image = ii.getImage();
image = image.getScaledInstance(SCALED_X, SCLAED_Y, Image.SCALE_SMOOTH);
positionX = windowWidth/2 - image.getWidth()/2;
positionY = windowHeight - image.getHeight();
當我調試,我注意到,圖像的高度和寬度-1,調用getScaledInstance功能後的代碼,因此,最後兩行返回錯誤的結果。我想出了一個解決方法是使用SCALED_X和SCALED_Y作爲新的高度和寬度,但那不是那麼漂亮.- 任何人都可以解釋爲什麼這是,即高度和寬度的值爲-1?使用getScaledInstance函數時是否會丟失這些屬性(在文檔中找不到任何關於這些內容的文字)?有什麼方法可以將它們添加到Image中嗎?
有沒有辦法縮小圖像的大小,並保持resp。自動調整屬性?
編輯:
更改代碼來獲取圖像到:
try {
image = ImageIO.read(new File("images/player.png")).getScaledInstance(SCALED_X, SCLAED_Y, Image.SCALE_SMOOTH);
} catch (IOException e) {
e.printStackTrace();
}
誤差-1仍然存在:(
使用ImageIO加載圖像。 ImageIcon是一個Swing組件,即GUI的一部分。如果您沒有使用Swing創建GUI,請不要使用它。 – Njol
那就是。不知道。 關於實際問題的任何想法? – datosh
ImageIcon在內部使用的圖像可能不支持調整大小,因此會從該方法返回無效的圖像。 – Njol