Java 用于截取屏幕截图

Java 用于截取屏幕截图

Java AWT(Abstract Window Toolkit)是一个多功能的软件包,其中包含创建用户界面和绘制图形图像所需的所有类。在AWT术语中,按钮和类似滚动条的实体被称为组件。Component类是所有AWT组件的根。当用户与组件交互时,某些组件会触发事件。AWTEvent类及其子类表示AWT组件能够触发的事件。在AWTEvent中,解释了AWT事件模型。

容器是可能包含其他组件和容器的组件。容器的另一个选择是布局管理器,它控制了组件在容器内的可视布局。AWT软件包包含一些布局管理器类,以及一个用于开发自己的布局管理器的接口。有关更多信息,请查看LayoutManager和Container。

这些值以整数的形式保存,因此每个组件对象都有最大大小和位置。平台还可能对最大大小和地理区域设置进一步的限制。平台确定了精确的最大值。这些最大值无论是在Java代码还是本地代码中都无法更改。组件布局也受到这些限制的约束。如果组件的限制超过平台限制,则无法在容器对象内有效地组织组件对象。任何对象在特定轴上的位置和大小共同确定了对象的限制。

步骤

通过构建GUI来截取屏幕截图

  • 导入所有必要的java包。

  • 创建一个’Robot’对象来截取屏幕截图。

  • 创建一个’Rectangle’对象来指定要截取的屏幕的尺寸。

  • 将屏幕作为’BufferedImage’对象截取。

  • 打印屏幕截图被截取的消息。

通过构建GUI来截取屏幕截图并保存到指定路径

  • 导入所有必要的库。

  • 创建一个’JFrame’对象来容纳GUI组件。

  • 创建一个’JButton’对象来点击和截取屏幕截图。

  • 创建一个’JFileChooser’对象来容纳’JButton’并将其添加到’JFrame’中。

  • 为’JButton’添加’ActionListener’,当按钮被点击时,截取屏幕截图并将其保存到指定文件中。

  • 使用’Robot’对象将屏幕作为’BufferedImage’对象截取。

  • 显示“保存文件”对话框,允许用户选择保存位置和文件名。

  • 使用’ImageIO.write()’方法将’BufferedImage’对象保存到选定的文件中。

  • 打印屏幕截图被保存的消息。

  • 指定’JFrame’的尺寸和可见性。

方法

  • 捕捉屏幕截图而不建立GUI。

  • 通过建立GUI并保存到特定路径来捕捉屏幕截图。

捕捉屏幕截图而不创建GUI

示例

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class ScreenCapture {
   public static void main(String[] args) throws Exception {
      // Create a Robot object to capture the screen
      Robot robot = new Robot();

      // Create a Rectangle object to define the area of the screen to capture
      Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());

      // Use the robot.createScreenCapture() method to capture the screen as a BufferedImage object
      BufferedImage image = robot.createScreenCapture(rectangle);

      // Save the BufferedImage object to a file using the ImageIO.write() method
      File file = new File("screenshot.png");
      ImageIO.write(image, "png", file);

      // Print a message indicating that the screenshot has been saved
      System.out.println("Screenshot saved to screenshot.png");
   }
}

输出

Screenshot saved to screenshot.png

Java 用于截取屏幕截图

Java.awt和Javax.imageIO包用于捕获和保存屏幕快照。它首先创建一个Robot对象,然后尝试将屏幕捕获为BufferedImage对象。稍后创建的Rectangle对象定义了要捕获的屏幕部分,其为使用Toolkit.getDefaultToolkit()函数的getScreenSize函数收集的完整屏幕。

然后,代码使用机器人将屏幕捕获为BufferedImage对象,使用的函数称为createScreenCapture(rectangle)。最新的屏幕截图将被替换为此项。

在我们的过程中,接下来我们通过ImageIO.write函数保留特定的BufferedImage实例,具体使用它的参数(”png”和file)。执行此操作需要使用两个不同的对象:第一个是我们代表性的BufferedImage,简称”image”,而第二个仅被称为”file”,确定了输出将被保存在何处。值得注意的是,在此情况下,我们选择了PNG格式进行存储。

程序生成的最后一条消息指示屏幕截图已保存到文件screenshot.png。

通过创建GUI并保存到特定路径来捕获屏幕截图

示例

import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ScreenshotCapture {
   public static void main(String[] args) {
      // Create a JFrame object
      JFrame frame = new JFrame("Screenshot Capture");

      // Create a JButton object
      JButton captureButton = new JButton("Capture");

      // Create a JFileChooser object
      JFileChooser fileChooser = new JFileChooser();

      // Create a JPanel object
      JPanel panel = new JPanel();

      // Add the JButton and JPanel objects to the JFrame
      panel.add(captureButton);
      frame.add(panel, BorderLayout.CENTER);

      // Add an ActionListener to the JButton to capture the screenshot and save it to a file
      captureButton.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
            try {
               // Create a Robot object to capture the screen
               Robot robot = new Robot();

               // Create a Rectangle object to define the area of the screen to capture
               Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());

               // Use the robot.createScreenCapture() method to capture the screen as a BufferedImage object
               BufferedImage image = robot.createScreenCapture(rectangle);

               // Show the save file dialog to allow the user to select the save location and file name
               int result = fileChooser.showSaveDialog(frame);
               if (result == JFileChooser.APPROVE_OPTION) {
                  // Get the selected file and save the BufferedImage object to it using the ImageIO.write() method
                  File file = fileChooser.getSelectedFile();
                  ImageIO.write(image, "png", file);

                  // Print a message indicating that the screenshot has been saved
                  System.out.println("Screenshot saved to " + file.getAbsolutePath());
               }
            } catch (AWTException ex) {
               ex.printStackTrace();
            } catch (Exception ex) {
               ex.printStackTrace();
            }
         }
      });

      // Set the size and visibility of the JFrame
      frame.setSize(new Dimension(300, 100));
      frame.setVisible(true);
   }
}

输出

Java 用于截取屏幕截图

为了记录屏幕、显示保存文件对话框并保存图像,程序使用了Java.awt、Javax.swing和Javax.imageio包。首先创建了一个带有“Capture”标签的JButton对象和一个JFrame对象。此外,还生成了一个JFileChooser对象,让用户选择存储快照的位置和命名方式。

然后,程序将JButton和JPanel对象添加到JFrame中。此外,它还为JButton对象添加了一个ActionListener,以便每当按钮被按下时,当前屏幕的快照就会被拍摄并保存到文件中。为了将屏幕捕获为BufferedImage对象,ActionListener首先生成一个Robot对象。然后使用JFileChooser返回的fileChooser.showSaveDialog(frame)函数显示保存文件对话框。如果用户选择了一个文件并在对话框中点击“保存”,将显示APPROVE_OPTION。

当用户选择了一个文件后,程序使用fileChooser获取选择的文件。然后使用ImageIO.write(image, “png”, file)函数将BufferedImage对象保存到文件中,并使用getSelectedFile()。”png”参数指定图像的格式为PNG。

快照已保存到文件路径,程序最后用getAbsolutePath()在屏幕上显示提示。

结论

总之,使用Robot类捕获屏幕的BufferedImage对象和ImageIO.write()方法将图像保存到文件中,可以在Java中拍摄屏幕快照。用户还可以通过使用Swing组件(如JFrame、JButton和JFileChooser)构建的GUI应用程序选择保存位置和文件名。通过将ActionListener附加到JButton上,可以将截图保存到所选择的文件中。总的来说,Java提供了一种简单而灵活的方法,可以为各种用途拍摄和保存截图。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程