![](/img/trans.png)
[英]Java:getHeight() on BufferedImage is returning image width and getWidth() is returning image height
[英]Image getWidth and getHeight returning -1 inappropriately
為什么這樣:
URL url = MinecraftPlatformGame.class.getResource("images/diamondPick.png");
image = Toolkit.getDefaultToolkit().getImage(url);
int width = image.getWidth(null);
int height = image.getHeight(null);
System.out.println(width);
System.out.println(height);
width
和height
均返回-1
編輯:在我弄清楚答案之前我的問題實際上是我應該如何修復它。 我通過執行以下操作修復了它:
URL url = MinecraftPlatformGame.class.getResource("images/diamondPick.png");
image = Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mTracker = new MediaTracker(this);
mTracker.addImage(image,1);
try {
mTracker.waitForID(1);
} catch (InterruptedException ex) {
Logger.getLogger(MinecraftPlatformGame.class.getName()).log(Level.SEVERE, null, ex);
}
int width = image.getWidth(null);
int height = image.getHeight(null);
System.out.println(width);
System.out.println(height);
url = MinecraftPlatformGame.class.getResource("images/gui.png");
image1 = Toolkit.getDefaultToolkit().getImage(url);
mTracker.addImage(image1,2);
try {
mTracker.waitForID(2);
} catch (InterruptedException ex) {
Logger.getLogger(MinecraftPlatformGame.class.getName()).log(Level.SEVERE, null, ex);
}
width = image1.getWidth(null);
height = image1.getHeight(null);
System.out.println(width);
System.out.println(height);
我現在遇到的問題是,這似乎不是很有效,也不像我需要這么多代碼才能導入兩個圖像和給定大小。 有沒有更好的,更有效的方法來做到這一點?
根據Javadoc:
如果寬度尚不知道,則此方法返回-1,稍后會通知指定的ImageObserver對象。
為了響應您的編輯,並遵循Russell的評論,請使用ImageIO.read()
來獲取完整加載的圖像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.