2012-03-28 75 views
1

我想写一个NXT机器人模拟器与lejOS机器人可以避免障碍,但我想要在代码中生成的障碍。下面的代码允许创建Circle.jpg,但是如果代码尝试使用它创建的图像,代码会崩溃。该代码在Intellij IDEA中工作,但不会与以前生成的图像一起蚀刻。我曾尝试没有结果如下:Java生成的图像不能用于生成它们的代码中?

  • 用于代替的.jpg
  • 使用和.png由之前的运行产生的,这意味着它已经存在的图像。
  • 变更类型从不透明到半透明等

我想知道我在做什么,使图像崩溃我的代码生成的动态图像时?

更新:增加了用于调用新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); 

这就是日食说: enter image description here

回答

1

我没有问题,在Eclipse中的代码,除椭圆形的颜色。 你是说“代码崩溃”是什么意思?你是否有异常?它有什么信息?难道你没有“src/sprites”路径?

+0

更新的问题,谢谢。 – FossilizedCarlos 2012-03-28 16:58:16

+0

我并不熟悉lejOS/NXT,但异常似乎主要与加载有关,而不是保存。你确定你的文件路径指定正确吗?在创建代码中使用'src/sprites /',但在加载时只使用'sprites /',可以吗?您可能要检查指定的演员路径文件(如这里:'http://www.aplu.ch/classdoc/jgamegrid/ch/aplu/jgamegrid/Actor.html#Actor(boolean,java.lang中。字符串)') – Mikhail 2012-03-30 10:23:05

+0

是的。图像取自/ sprites,假设lejOS库负责其余部分。我生成的图像来自普通的Java代码,所以我必须告诉它完整的路径。 – FossilizedCarlos 2012-03-31 00:33:05