Java生成的图像不能在生成它们的代码中使用?

时间:2012-03-28 04:16:46

标签: java bufferedimage nxt lejos-nxj

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

这就是eclipse所说的: enter image description here

1 个答案:

答案 0 :(得分:1)

除了椭圆颜色外,我在eclipse中的代码没有问题。 你的意思是“代码崩溃”是什么意思?你有异常吗?它的内容是什么?难道你只是没有“src / sprites”路径吗?