问题描述
我的问题是我需要将用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调用此函数,然后开始绘制。但是,当然,这只是使它看上去而已,我需要在单击之间单击之间保存图形
解决方法
创建任何组件图像的基本逻辑是:
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的可重用类,该类可以为您完成此操作并提供更多功能。