如何修复使用 ImageIO.read [Java] [初学者] 加载纹理时出现的错误
How can I fix an error with loading textures using ImageIO.read [Java] [Beginner]
我最近决定在离开 java 多年后重新回到 java,并且正在关注制作游戏的 youtube 教程系列。我尝试加载使用以下代码制作的纹理
(我正在使用 Eclipse)
public static Render plane = loadBitmap("/textures/floor.png");
public static Render loadBitmap(String fileName) {
try {
BufferedImage image = ImageIO.read(Texture.class.getResourceAsStream(fileName));
int width = image.getWidth();
int height = image.getHeight();
Render result = new Render(width, height);
image.getRGB(0, 0, width, height, result.pixels, 0, width);
return result;
}catch (Exception e) {
Debug.logError("CRASH | Failed to load image");
throw new RuntimeException(e);
}
}
我收到以下错误:
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null!
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:23)
at net.xernia.bluehero.graphics.Texture.<clinit>(Texture.java:11)
... 5 more
Caused by: java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1356)
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:15)
... 6 more
我的项目结构如下:
src
package
Texture.java
res
textures
floor.png
我在属性->java 构建路径下添加了 res 作为模块路径下的 class 文件夹。对不起,如果这对你们中的一些人来说是一个非常微不足道的错误,但它让我感到困惑,哈哈。希望这是足够的信息,如果我遗漏了一些重要的东西,请告诉我:)
将文件夹res移动到src,我们有:
src
package
Texture.java
res
textures
floor.png
并将文件名更改为 /res/textures/floor.png
。 (不要忘记重建项目)
我最近决定在离开 java 多年后重新回到 java,并且正在关注制作游戏的 youtube 教程系列。我尝试加载使用以下代码制作的纹理 (我正在使用 Eclipse)
public static Render plane = loadBitmap("/textures/floor.png");
public static Render loadBitmap(String fileName) {
try {
BufferedImage image = ImageIO.read(Texture.class.getResourceAsStream(fileName));
int width = image.getWidth();
int height = image.getHeight();
Render result = new Render(width, height);
image.getRGB(0, 0, width, height, result.pixels, 0, width);
return result;
}catch (Exception e) {
Debug.logError("CRASH | Failed to load image");
throw new RuntimeException(e);
}
}
我收到以下错误:
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null!
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:23)
at net.xernia.bluehero.graphics.Texture.<clinit>(Texture.java:11)
... 5 more
Caused by: java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1356)
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:15)
... 6 more
我的项目结构如下:
src
package
Texture.java
res
textures
floor.png
我在属性->java 构建路径下添加了 res 作为模块路径下的 class 文件夹。对不起,如果这对你们中的一些人来说是一个非常微不足道的错误,但它让我感到困惑,哈哈。希望这是足够的信息,如果我遗漏了一些重要的东西,请告诉我:)
将文件夹res移动到src,我们有:
src
package
Texture.java
res
textures
floor.png
并将文件名更改为 /res/textures/floor.png
。 (不要忘记重建项目)