Salvar como imagem um desenho feito em Java2D [RESOLVIDO]

Oi pessoal!, eu fiz um paint em java usando a API java2D, e eu queria salvar o desenho feito.

Alguém sabe como salvar?

eu já pesquisei na web e não achei nada.

cara já viu o IO
não me lembro muito bem dele mas ele é bom para entrada e saída (essa é sua função)

http://docs.oracle.com/javase/1.4.2/docs/api/javax/imageio/ImageIO.html#write(java.awt.image.RenderedImage, java.lang.String, java.io.File)

ImageIO.write(suaBufferedImage, "png", new File("/files/img.png"));

Eu já conhecia o ImageIO, mas para esse caso ele não dar certo (Pelo menos nos meus conhecimentos),
O desenho é feito em um JPanel através da classe Graphics, e lá eu não tenho um BufferedImage,
Eu já tentei ver se é possível extrair um BufferedImage da classe Graphics, mas pelo que eu vi ela não tem o Objeto BufferedImage,
por isso a dificuldade!

Não desenhe diretamente num painel. Desenhe num BufferedImage (que tem o método createGraphics()) e use o painel para desenhar essa imagem. Caso contrário, o desenho desaparecerá assim que você minimizar e maximizar a aplicação.

Em todo caso, é possível copiar o conteúdo de um painel para um BufferedImage.

[code]
BufferedImage img = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB); //Troque o 800 e 600 pelo tamanho do seu painel
Graphics2D g2d = img.createGraphics();
seuPainel.drawImage(img, 0, 0, null);
g2d.dispose();

//Agora salve a imagem como o Mark indicou.[/code]

Embora o aconselhável seja fazer o inverso, como indiquei no primeiro parágrafo.

Deu certo desenhar sobre o BufferedImage, resolveu meu problema.

So que não ficou com a mesma qualidade que desenhar sobre o JPanel.

Outro problema 'e que quando desenha uma forma sobre a outra, ela não sobrescreve a anterior,
fazendo uma mistura de cores, mantando o desenho.
Alguma sugestão?

Não deveria fazer blending.

Me diz uma coisa, vc mudou seu código para desenhar na imagem e depois aplicar o resultado no JPanel? Ou usou o código que eu fiz para copiar o painel para a imagem?
Para definir a qualidade de um objeto Graphics, use o método setRenderingHints. Talvez só falte definir isso para o seu objeto desenhar com qualidade.

da para postar pelo menos o jar do seu paint aí.]valeu.

Eu desenhei primeiro na imagem e depois apliquei no painel. Foi a sua primeira sugestão.

Deu certo o setRenderingHints.

Tai o código fonte… O código tá meio desorganizado porque eu tirei do meu projeto original. (Projeto do Netbeans :D)