我设法制作了一个 LineFollower 程序;添加了“记忆”机器人刚刚走过的路径的功能。下一步是绘制该路径并将图像文件保存在砖中,然后使用 NxjBrowse 在 PC 中读取它。我想我会尝试使用经典的 java 方法,使用 BufferedImage 并使用 ImageIO 保存,但它没有用,它一直给我 Java 堆空间: 我以前的问题
之后,我做了一些研究,发现有一个名为javax.microedition.lcdui.Image的类,所以我创建了一个 Image 对象并使用 GetGraphics 并尝试在其上绘图;并使用 FileOutputStream 保存它,这是我的代码:
Image img = Image.createImage(300, 300);
Graphics g = img.getGraphics();
g.drawLine(0, 0, 100, 200);
File monFichier = new File("Image2.png");
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(monFichier);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] b = img.getData();
try {
fOut.write(b);
fOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
问题是当我连接到我的电脑时,它写入的文件不能被识别为图像;我无法打开创建的文件(检查大小,不是空的)。不知道是保存错了还是我画的方法错了。问题的简短版本:如何用 Lejos 画线并将结果另存为图像文件?谢谢你。
更新:
我使用 ImageOutputStream 而不是 FileOutputStream;现在它给了我“Java堆空间”错误;在它陷入“链接”一段时间之后。
Java Heap Space
Java.lang.OutOfMemoryError