簡體   English   中英

圖像getWidth和getHeight不正確地返回-1

[英]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);

widthheight均返回-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM