Simples como o título indica: Você pode usar apenas comandos Java para tirar uma captura de tela e salvá-la? Ou preciso usar um programa específico do SO para tirar a captura de tela e depois retirá-la da área de transferência?
java
image
screenshot
jjnguy
fonte
fonte
Respostas:
Acredite ou não, você pode realmente usar
java.awt.Robot
para "criar uma imagem contendo pixels lidos na tela". Você pode gravar essa imagem em um arquivo no disco.Eu apenas tentei, e a coisa toda acaba como:
NOTA: Isso capturará apenas o monitor principal. Consulte GraphicsConfiguration para suporte a vários monitores.
fonte
Eu nunca gostei de usar o Robot, então criei meu próprio método simples para fazer capturas de tela dos objetos JFrame:
fonte
Robot
você também pode obter o quadro e a barra de título da janela.Se você deseja capturar todos os monitores, pode usar o seguinte código:
fonte
fonte
fonte
bufferedImage conterá uma captura de tela completa, foi testada com três monitores
fonte
Você pode usar
java.awt.Robot
para realizar esta tarefa.abaixo está o código do servidor, que salva a captura de tela capturada como imagem em seu diretório.
E este é o código do cliente que está sendo executado no encadeamento e, após alguns minutos, está capturando a captura de tela da tela do usuário.
fonte
O Toolkit retorna pixels com base no PPI, como resultado, uma captura de tela não é criada para a tela inteira ao usar o PPI> 100% no Windows. Proponho fazer isso:
fonte