«1. Обзор

Когда вам нужно выполнить действие экрана печати на рабочем столе, на клавиатуре есть встроенная кнопка «PrntScr», которая поможет вам в этом. Иногда этого достаточно.

Но проблема возникает, когда вам нужно выполнить это действие программно. Проще говоря, вам может понадобиться сохранить текущий снимок экрана в виде файла изображения с помощью Java.

Давайте посмотрим, как мы можем это сделать.

2. Класс робота

Класс Java java.awt.Robot — это основной API, который мы собираемся использовать. Этот вызов содержит метод под названием «createScreenCapture», который делает снимок экрана при передаче определенной формы:

robot.createScreenCapture(rectangle);

Поскольку приведенный выше метод возвращает экземпляр java.awt.image.BufferedImage, все, что вам нужно сделать, для записи полученного изображения в файл с помощью служебного класса javax.imageio.ImageIO.

3. Захват и сохранение файла изображения

Код Java для захвата и сохранения изображения выглядит следующим образом:

public void getScreenshot(int timeToWait) throws Exception {
    Rectangle rec = new Rectangle(
      Toolkit.getDefaultToolkit().getScreenSize());
    Robot robot = new Robot();
    BufferedImage img = robot.createScreenCapture(rectangle);
    
    ImageIO.write(img, "jpg", setupFileNamePath());
}

Здесь можно захватить часть экрана, установив требуемый размер на экземпляр java.awt.Rectangle. Однако в приведенном выше примере он был настроен на захват всего экрана путем установки текущего размера экрана.

4. Заключение

В этом уроке мы кратко рассмотрели использование экрана печати в Java. Исходный код приведенных выше примеров можно найти в проекте GitHub.