Como eu transformo um conteudo de um Canvas em BufferedImage

9 respostas
renatotn7

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

abraços

9 Respostas

ViniGodoy

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());

renatotn7

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

ViniGodoy

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?

renatotn7

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

ViniGodoy

Entendi, mas ele chegou a desenhar alguma coisa?

renatotn7

não apenas apresenta um azul escuro uniforme

ViniGodoy

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…

renatotn7

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?

ViniGodoy

Printscreen?

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

Criado 7 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 9
Participantes 2