Невозможно преобразовать текущие данные холста в изображение в Java
У меня есть простое приложение, которое позволяет пользователю рисовать в элементе управления холстом.
Теперь я хочу преобразовать этот холст в изображение. Так вот'мой код
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);
}
}
Все это приводит к чистому изображению, я знаю, как работает метод рисования, и я понимаю, что там, где моя проблема. Но как я могу сделать, чтобы нарисовать все, что пользователь уже нарисовал в методе рисования?
Извините за мой плохой английский, ям из Мексики. Спасибо кстати
Я хотел бы знать, есть ли что-то похожее, когда вы работаете с Canvas или HTML5, и вы получаете матрицу с информацией RGB о каждом пикселе на холсте. Возможно ли это сделать с помощью компонента canvas в JAVA?