1

我正在尝试使用 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);

这就是日食所说的: 在此处输入图像描述

4

1 回答 1

1

除了椭圆颜色外,我在 Eclipse 中的代码没有问题。你是什​​么意思说“代码崩溃”?你有例外吗?里面有什么信息?可能是你没有“src/sprites”路径吗?

于 2012-03-28T05:28:36.720 回答