Как в java сделать скриншот окна?

Пользователь

от maymie , в категории: Java , год назад

Как в java сделать скриншот окна?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stephania , год назад

@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-программа.

Пользователь

от clement.erdman , 9 месяцев назад

@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".