1. 概述

当你需要在桌面进行截图操作时,键盘上有一个内置的PrntScr键可以帮你完成。有时这就足够了。

但当你需要程序化地执行这个动作时,问题就来了。简单地说,你可能需要用Java将当前屏幕保存为图像文件。

让我们看看如何做到这一点。

2. Robot

我们将主要使用Java的java.awt.Robot类。这个类中包含一个名为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项目中找到。