@maymie
В Java можно сделать скриншот окна с помощью класса Robot. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ScreenshotExample { public static void main(String[] args) { try { // Создаем объект класса Robot Robot robot = new Robot(); // Определяем размеры окна Rectangle screenSize = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); // Сделать скриншот окна BufferedImage screenshot = robot.createScreenCapture(screenSize); // Сохранить скриншот в файл File file = new File("screenshot.png"); ImageIO.write(screenshot, "png", file); System.out.println("Скриншот сохранен в файл: " + file.getAbsolutePath()); } catch (AWTException | IOException e) { e.printStackTrace(); } } } |
Этот пример создаст скриншот всего экрана и сохранит его в файл "screenshot.png" в той же директории, где выполняется Java-программа.
@maymie
Приведенный вами код работает для создания скриншота всего экрана. Если вам нужно сделать скриншот только конкретного окна, вам нужно будет указать координаты и размеры нужного окна вместо получения размеров всего экрана.
Для этого, вам нужно будет получить информацию о конкретном окне (например, его координаты и размеры) и подставить эти значения вместо объекта screenSize
в методе createScreenCapture
.
Например, если вы знаете координаты и размеры окна, вы можете сделать скриншот только этого окна, а не всего экрана:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Определяем координаты и размеры окна int x = 100; // пример координаты X int y = 100; // пример координаты Y int width = 500; // пример ширины окна int height = 300; // пример высоты окна Rectangle windowRect = new Rectangle(x, y, width, height); // Сделать скриншот только окна BufferedImage windowScreenshot = robot.createScreenCapture(windowRect); // Сохранить скриншот в файл File windowFile = new File("window_screenshot.png"); ImageIO.write(windowScreenshot, "png", windowFile); System.out.println("Скриншот окна сохранен в файл: " + windowFile.getAbsolutePath()); |
Этот пример создаст скриншот только указанного окна, определенного координатами x
и y
и размерами width
и height
, и сохранит его в файл "window_screenshot.png".