Senhores,
ou o createScreenCapture não está conseguindo capiturar a tela ou quando faço para "plotar" a imagem o java não consegue interpretar a imagem capturada.
Não encontrei nenhuma mensagem que trata a respeito, o código abaixo é como faço a capitura:
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
GraphicsConfiguration config = device.getDefaultConfiguration();
Rectangle quadro = config.getBounds();
java.awt.Robot robot = new java.awt.Robot();
BufferedImage bi = robot.createScreenCapture( quadro );
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}
O problema encontra-se quando na tela do Windows ou do Linux está passando um vídeo ou outra programa que apresente imagens em 32bits. Em outras situações, como telas de programas normais ou mesmo com o photoshop o programa funciona.
A configuração de vídeo está para 1280x1024 e 32bits de cor.
A versão da vm é:
Java(TM) SE Runtime Environment (build 1.6.0_02-b06)
Java HotSpot(TM) Client VM (build 1.6.0_02-b06, mixed mode)
SO: MS Windows Vista 64 bits
e Ubuntu 7.04.
Os testes que fiz com o que tem nesses links também produzem o mesmo erro:
[url]http://forum.java.sun.com/thread.jspa?threadID=5152920&tstart=225[/url]
[url]http://forum.java.sun.com/thread.jspa?threadID=597936&messageID=4108555[/url]
Se alguém tiver alguma sugestão eu agradeço.