我正在尝试使用 lejOS 编写一个 NXT 机器人模拟器,其中机器人可以避开障碍物,但我希望在代码中生成障碍物。下面的代码允许创建 Circle.jpg,但如果它试图使用它创建的图像,代码会崩溃。该代码适用于 Intellij IDEA,但不适用于以前生成的图像。我尝试了以下没有结果:
- 使用 .png 而不是 .jpg
- 使用和先前运行生成的图像,这意味着它已经存在。
- 将类型从不透明更改为半透明等。
我想知道我在做什么使图像在动态生成图像时使我的代码崩溃?
更新:添加了用于调用新 jpg 的命令,以及错误图片。
public static void obstacleFactory()
{
int width = 30;
int height = 30;
GraphicsEnvironment environment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device =
environment.getDefaultScreenDevice();
GraphicsConfiguration config = device.getDefaultConfiguration();
BufferedImage bufferedImage = config.createCompatibleImage(width, height,
Transparency.TRANSLUCENT);
Graphics2D g2d = bufferedImage.createGraphics();
g2d.setColor(Color.yellow);
g2d.fillOval(0, 0, width, height);
g2d.dispose();
RenderedImage rendImage = bufferedImage;
try {
File file = new File("src/sprites/Circle.jpg");
ImageIO.write(rendImage, "jpg", file);
} catch (IOException e) {}
}
调用 jpg 的命令是
NxtContext.useObstacle("sprites/Circle.jpg", 250, 475);
这就是日食所说的: