Como eu transformo um conteudo de um Canvas em BufferedImage

olá como eu faço isso?
alguem tem exemplos?

abraços

Já tentou criar uma bufferedimage e chamar o método paint do seu canvas?

BufferedImage img = new BufferedImage(canvas.getWidth(), canvas.getHeigth(), BufferedImage.TYPE_INT_ARGB); canvas.paint(img.createGraphics());

Vini, fiz o que vc me disse, mas a imagem que eu salvo vem num azul escuro.

Ela é totalmente azul escura?
Ou só os tons estão incorretos?

Por que você está usando um Canvas e não um componente do Swing?

estou usando o browser opensource oferecido por https://jdic.dev.java.net/
este usa uma classe chamada WebBrowser que herda da classe canvas
fiz isso porque o JEditorPane do java é meio desatualizado para htmls

Entendi, mas ele chegou a desenhar alguma coisa?

não apenas apresenta um azul escuro uniforme

Ok, fui até o site do JDIC e dei uma lida na documentação. Na verdade, ele usa o browser do próprio SO, provavelmente através de chamadas nativas e JNI.

Nesse caso, tentar pinta-lo numa BufferedImage não vai mesmo funcionar (você pode até ver no método paint, que ele chega a citar o Window Handle do SO).

Aliás, aí eu também não sei o que funcionaria…

vc tem alguma dica do que eu poderia usar de forma que eu pudesse exibir o conteudo html (algo atualizado) e pudesse capturar a imagem da exibição da pagina e transformar num jpg?

Printscreen?

Daí eu não sei não… talvez procurar alguma API por aí…