Невозможно преобразовать текущие данные холста в изображение в 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?

Ответы на вопрос(1)

Ваш ответ на вопрос