Ada kelas Robot di API standar Java, yang dapat mengimplementasikan tangkapan layar dan mensimulasikan operasi mouse dan keyboard. Hanya tangkapan layarnya yang ditampilkan di sini.
Metode utama untuk mengambil tangkapan layar adalah createScreenCapture(Rectangle rect). Metode ini memerlukan objek Rectangle. Rectangle adalah area persegi panjang yang mendefinisikan layar.
Persegi Panjang baru(int x, int y, int lebar, int tinggi), keempat parameter tersebut adalah koordinat x sudut kiri atas persegi panjang, koordinat y sudut kiri atas persegi panjang, lebar persegi panjang, dan tinggi persegi panjang tersebut. Metode tangkapan layar mengembalikan objek BufferedImage, kode contoh:
/** * Tentukan tangkapan layar area layar dan kembalikan objek BufferedImage tangkapan layar * @param x * @param y * @param lebar * @param tinggi * @return */ public BufferedImage getScreenShot(int x, int y, int lebar, int tinggi ) { BufferedImage bfImage = null; coba { Robot robot = new Robot(); robot.createScreenCapture(Persegi Panjang baru(x, y, lebar, tinggi)); } catch (AWTException e) { e.printStackTrace();
Jika Anda perlu menyimpan tangkapan layar sebagai file, gunakan ImageIO.write(RenderedImage im, String formatName, File output), kode contoh:
/** * Ambil tangkapan layar area layar yang ditentukan dan simpan ke direktori yang ditentukan * @param x * @param y * @param lebar * @param tinggi * @param savePath - Jalur penyimpanan file * @param nama file - Penyimpanan file nama * format @param - Format file*/ public void screenShotAsFile(int x, int y, int lebar, int tinggi, String savePath, String fileName, String format) { coba { Robot robot = Robot baru(); BufferedImage bfImage = robot.createScreenCapture(persegi panjang baru(x, y, lebar, tinggi)); Jalur file = File baru(savePath File file = File baru(jalur, Nama file+ "." + format); , format, berkas); } tangkapan (AWTException e) { e.printStackTrace(); e.printStackTrace();
Setelah mengambil screenshot, mungkin kita perlu memotongnya. Ini terutama melibatkan dua kelas, CropImageFilter dan FilteredImageSource. Untuk pengenalan kedua kelas ini, lihat dokumentasi java.
/** *Pemotongan gambar BufferedImage* @param srcBfImg - BufferedImage yang terpotong * @param x - koordinat X sudut kiri atas titik kliping * @param y - koordinat Y sudut kiri atas titik kliping * @param width - lebar gambar yang dipotong* @param height - tinggi gambar yang dipotong* @mengembalikan BufferedImage yang dipotong */ public BufferedImage cutBufferedImage(BufferedImage srcBfImg, int x, int y, int lebar, int tinggi) { BufferedImage cutedImage = null; CropImageFilter cropFilter = new CropImageFilter(x, y, lebar, tinggi); FilteredImageSource(srcBfImg.getSource(), cropFilter)); cutedImage = new BufferedImage(lebar, tinggi, BufferedImage.TYPE_INT_RGB); g = cutedImage.getGraphics(); buang(); kembalikan gambar lucu; }
Jika Anda perlu menyimpan file yang dipotong setelah pemangkasan, gunakan ImageIO.write dan lihat kode di atas untuk menyimpan tangkapan layar sebagai file.