我知道该方法无法获取图像的宽度或高度时会返回-1,但我希望您能告诉我为什么它无法做到这一点。在这里,我创建了几个ImageIcons并将它们保存在一个Image Array中:
for(int x = 0; x < playerSprites.length; x++){
playerSprites [x] = new ImageIcon("player" + x + ".png").getImage()
}
稍后,我创建该类的一个实例,该实例目前仅创建此Array。然后,当我想从另一个类的数组中获取图像时,我检查它们的高度和宽度,并且我总是在两者上都得到-1:
public Image nextImage(String name){
Image image = null;
if(name.equals("player")){
if(counter == animationImageManager.getPlayerSprites().length-1){
counter = 0;
}
image = animationImageManager.getPlayerSprites()[counter];
counter++;
}
return image;
}
如果未找到图像,则其高度和宽度仍返回-1。
请尝试下面的示例代码来重现该问题:
System.out.println(new ImageIcon("").getImage().getWidth(null)); // print -1
值得阅读有关使用getResource加载图像的Java教程。
可能是因为未正确加载图像。
您可以根据图像位置尝试任何一种。
// Read from same package
ImageIO.read(getClass().getResourceAsStream("c.png"));
// Read from images folder parallel to src in your project
ImageIO.read(new File("images/c.jpg"));
// Read from src/images folder
ImageIO.read(getClass().getResource("/images/c.png"))
// Read from src/images folder
ImageIO.read(getClass().getResourceAsStream("/images/c.png"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句