我已经创建了一个生成雪花的Java程序,并且一旦程序完成绘制,我想将创建的图像保存为.png文件。
我在Internet上进行了搜索,但是我发现只有使用BufferedImage的程序,而我使用的是BufferStrategy,所以我不知道从哪里开始。
程序中的draw方法使用BufferStrategy创建Graphics组件。 例如,要画一条简单的线,方法是:
bs = display.getCanvas().getBufferStrategy();
if (bs == null) {
display.getCanvas().createBufferStrategy(3);
return;
}
g = bs.getDrawGraphics();
g.clearRect(0, 0, width, height);
g.setColor(Color.BLACK);
g.drawLine(0, 0, 50, 50);
我想要的是获取该程序在屏幕上绘制的内容的精确副本,并将其另存为.png图像。 希望你能帮助我。
答案 0 :(得分:0)
为什么不截屏然后粘贴到MS Paint或其他一些(更好的)图像编辑软件(如Photoshop或羊驼毛)上?那应该可以解决您的问题。
答案 1 :(得分:0)
BufferedStrategy
和BufferedImage
之间的公分母是Graphics
,因此您想编写一个绘制例程,以便您可以简单地将Graphics
的引用传递给它< / p>
public void render(Graphics g) {
g.clearRect(0, 0, width, height);
g.setColor(Color.BLACK);
g.drawLine(0, 0, 50, 50);
}
然后,您可以传递所需的上下文。
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_RGB);
Graphics2D g2d = img.createGraphics();
render(g2d);
g2d.dispose();
然后,您可以使用ImageIO.write
将映像写入磁盘。有关更多详细信息,请参见Writing/Saving an Image