Sesederhana seperti judulnya: Dapatkah Anda menggunakan hanya perintah Java untuk mengambil tangkapan layar dan menyimpannya? Atau, apakah saya perlu menggunakan program khusus OS untuk mengambil tangkapan layar dan kemudian mengambilnya dari clipboard?
java
image
screenshot
jjnguy
sumber
sumber
Jawaban:
Percaya atau tidak, Anda benar-benar dapat menggunakan
java.awt.Robot
untuk "membuat gambar yang mengandung piksel dibaca dari layar." Anda kemudian dapat menulis gambar itu ke file di disk.Saya baru saja mencobanya, dan semuanya berakhir seperti:
CATATAN: Ini hanya akan menangkap monitor utama. Lihat GraphicsConfiguration untuk dukungan multi-monitor.
sumber
Saya tidak pernah suka menggunakan Robot, jadi saya membuat metode sederhana saya sendiri untuk membuat tangkapan layar objek JFrame:
sumber
Robot
Anda juga bisa mendapatkan bingkai jendela dan bilah judul.Jika Anda ingin menangkap semua monitor, Anda dapat menggunakan kode berikut:
sumber
sumber
sumber
bufferedImage akan berisi tangkapan layar penuh, ini diuji dengan tiga monitor
sumber
Anda dapat menggunakan
java.awt.Robot
untuk mencapai tugas ini.di bawah ini adalah kode server, yang menyimpan tangkapan layar yang diambil sebagai gambar di Direktori Anda.
Dan ini adalah kode Klien yang berjalan pada utas dan setelah beberapa menit ia menangkap tangkapan layar layar pengguna.
sumber
Toolkit mengembalikan piksel berdasarkan PPI, akibatnya, tangkapan layar tidak dibuat untuk seluruh layar saat menggunakan PPI> 100% di Windows. Saya mengusulkan untuk melakukan ini:
sumber