为什么会这样:
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);
宽度
和高度
均返回-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:
If the width is not yet known, this method returns -1 and the specified ImageObserver object is notified later.
为了响应您的编辑,并根据 Russell 的评论,使用 ImageIO.read()
来获取完全加载的图像。
关于java - 图像 getWidth 和 getHeight 不恰本地返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766477/