2
は、なぜ、この行います画像のgetWidthとのgetHeightは-1を返す不適切
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
のための両方width
とheight
編集:私は考え出した前に私がいかに私の質問の答えは実際にでしたそれを修正するはずです。 私は次の操作を行って、それを修正:私は今持っている
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);
問題は、これは非常に効率的でいないようにも、私は2枚の画像をインポートしてサイズを与えられるだけのために多くのコードを必要としなければならないように、それは思えるんです。これを行うより効率的で簡単な方法がありますか? Javadocの当たり
ImageIO.read()は、常に完全にロードされたイメージを返します。 –
私は正確な幅と高さを返すmediatrackerで質問を更新しましたが、それは2つの画像だけにすぎないと考えるとまだ非効率的です。私は、リソースとして写真をインポートし、より良い方法で幅と高さを取得するより良い方法があると仮定しています。 @RussellZahniser – ComputerLocus
必要なものは 'image = ImageIO.read(url)'です。それで 'image.getWidth()'はMediaTrackerを必要とせず、最初から正しいでしょう。 –