【问题标题】:How can I capture image of desktop screen in java? [duplicate]如何在java中捕获桌面屏幕的图像? [复制]
【发布时间】:2013-08-03 15:18:26
【问题描述】:

我想在 java 中拍摄桌面屏幕的快照。 我该怎么做。

这类似于在ms-paint中按下打印屏幕并粘贴数据, 然后将文件保存为 .png 或 .jpg 格式。

【问题讨论】:

标签: java image-processing


【解决方案1】:

将以下代码复制并粘贴到您的 Java 类中并调用该方法 captureScreen() 以文件名作为参数。屏幕截图将是 存储在您在参数中指定的文件中。

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

...

public void captureScreen(String fileName) throws Exception {

   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
   Rectangle screenRectangle = new Rectangle(screenSize);
   Robot robot = new Robot();
   BufferedImage image = robot.createScreenCapture(screenRectangle);
   ImageIO.write(image, "png", new File(fileName));

}
...

在下面的链接中解释

how-to-take-screen-shots-in-java-taking-screenshots-jav

【讨论】:

    【解决方案2】:

    像这样:

    Robot r = new Robot();
    Toolkit t = Toolkit.getDefaultToolkit();
    Dimension d = t.getScreenSize();
    Image i = r.createScreenCapture(new Rectangle(0,0,d.width,d.height));
    

    【讨论】:

    • r.createScreenCapture(new Rectangle(0,0,d.width,d.height));
    【解决方案3】:
    Robot robot = new Robot();
    String format = "jpg";
    String fileName = "D://FullScreenshot." + format;
    Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
    BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
    ImageIO.write(screenFullImage, format, new File(fileName));
    

    【讨论】:

      【解决方案4】:

      试试这个:

      GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsDevice screen = env.getDefaultScreenDevice();
      robot = new Robot(screen);
      Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
      BufferedImage img = robot.createScreenCapture(new Rectangle(0,0,d.width,d.height));
      

      【讨论】:

        【解决方案5】:

        GraphicsEnvironment.getLocalGraphicsEnvironment();获取您的屏幕详细信息

        GraphicsConfiguration cg // get your screen configuration from above
        Rectangle rect = cg.getBounds();
        final BufferedImage image;
        image = new Robot().createScreenCapture(rect);
        file = new File(yourFilePath);
        String extension = "png" // or any other image extension.
        ImageIO.write(bufferedImage, extension, file);
        

        【讨论】:

          猜你喜欢
          • 2021-10-22
          • 1970-01-01
          • 2011-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-07
          • 1970-01-01
          相关资源
          最近更新 更多