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 .