我有一个简单的应用程序,允许用户在画布控件中绘图。
现在,我想将该画布转换为图像。以下是我的代码:
public void paint(Graphics g)
{
//super.paint(g);
Graphics2D draw = (Graphics2D) g;
if(this.is_beginning || this.to_save)
{
draw.setColor(Color.white);
draw.fillRect(0, 0, this.getWidth(), this.getHeight());
this.is_beginning= false;
}
if(this.m_alzada)
{
draw.setColor(Color.red);
draw.drawLine(uX, uY, x, y);
}
}
这是我保存图片的方法。
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int w = canvas1.getWidth();
int h = canvas1.getHeight();
int type = BufferedImage.TYPE_INT_BGR;
BufferedImage image = new BufferedImage(w,h,type);
Graphics2D g2 = image.createGraphics();
canvas1.to_save = true;
canvas1.paint(g2);
try {
ImageIO.write(image, "png", new File("C:/Users/Uriel/Desktop/ejemplo.png"));
} catch (IOException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
}
}
所有这些都导致了一张空白的图像。我知道paint方法是如何工作的,并且意识到我的问题就在那里。但是,我该如何在paint方法中绘制用户已经绘制的所有内容呢?
对不起,我的英语不好,我来自墨西哥。顺便说一下,谢谢。
我想知道是否有办法做出类似于使用HTML5 Canvas时获得画布中每个像素的RGB信息矩阵的功能。在JAVA的Canvas组件中是否可能?
!this.m_alzada
,那么图像将是白色的! - Andrew Thompson