如何将使用Java图形制作的图形保存为独立对象

问题描述

我的问题是我需要将用Java图形绘制的内容保存为独立的对象,以便稍后对其重新着色,独立地擦除它们...

这是我要导入的eclipse project。 (主要类是Paint类)

这是我用来绘制的方法

  protected void paintComponent(Graphics g) {
if (imagen == null) {
  imagen = createImage(getSize().width,getSize().height);
  graficos = (Graphics2D) imagen.getGraphics();
  graficos.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
  clear();
}
g.drawImage(imagen,null); }

我通过MouseMotionListener调用函数,然后开始绘制。但是,当然,这只是使它看上去而已,我需要在单击之间单击之间保存图形

You can see it better in this image

解决方法

创建任何组件图像的基本逻辑是:

Dimension d = component.getSize();
BufferedImage image = new BufferedImage(d.width,d.height,BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
component.print( g2d );
g2d.dispose();
ImageIO.write(image,".jpg",new File(...));

您可以检出Screen Image的可重用类,该类可以为您完成此操作并提供更多功能。