2012-03-28 31 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