gpt4 book ai didi

java - 无法找到图像

转载 作者:行者123 更新时间:2023-12-01 13:46:39 25 4
gpt4 key购买 nike

我一直在按照教程制作 2d 游戏。我已经创建了窗口并为其着色,设置了键盘输入,但现在我正在尝试导入图像。在该视频的评论中,http://www.youtube.com/watch?v=o7pfq0W3e4I ,似乎其他人也遇到同样的问题。主类中的代码行:

private SpriteSheet spriteSheet = new SpriteSheet("/spritesheet.png");

SpriteSheet 类的代码:

package GFX;

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

public class SpriteSheet {

public String path;
public int width;
public int height;

public int[] pixels;

public SpriteSheet(String path){
BufferedImage image = null;

try {
image = ImageIO.read(SpriteSheet.class.getResourceAsStream(path));
} catch (Exception e) {
System.out.println("Cant find image");
}

if(image == null){
return;
}

this.path = path;
this.width = image.getWidth();
this.height = image.getHeight();

pixels = image.getRGB(0,0,width,height,null,0,width); //0xffABCdAs

for(int i = 0;i<pixels.length;i++){
pixels[i] = (pixels[i] & 0xff)/64;
}

for(int i = 0;i<16;i++){
System.out.println(pixels[i]);
}



}

}

我已经尝试了所有不同的目录,甚至是从 Harddrvie 开始的目录,但仍然一无所获,它只是返回“无法找到图像”,如 try-catch 中所示。教程就像这样

            try {   image =    ImageIO.read(SpriteSheet.class.getResourceAsStream(path));
} catch (IOException e) {
e.printStackTrace();
}

这不起作用并返回此错误:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at GFX.SpriteSheet.<init>(SpriteSheet.java:20)
at inputHandling.Game.<init>(Game.java:23)
at inputHandling.Game.main(Game.java:128)

评论中很多人也发布了这个错误,当我注释掉主类中的路径时,程序运行但没有找到图像。谢谢。

最佳答案

一个简单的修复如下:

改变

private SpriteSheet spriteSheet = new SpriteSheet("/spritesheet.png");

private SpriteSheet spriteSheet = new SpriteSheet("spritesheet.png");

然后将 spritesheet.png 放在与 SpriteSheet 类相同的 Java 包或文件夹中。

Class.getResourceAsStream() 在类路径上查找资源,这就是为什么只要图像位于类路径上,它就可以工作。

关于java - 无法找到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com