如何用java捕获桌面屏幕的图像?

如何用java捕获桌面屏幕的图像?,java,image-processing,Java,Image Processing,我想用java拍摄桌面屏幕的快照。 我怎样才能做到这一点 这类似于在ms paint中按打印屏幕和粘贴数据, 然后以.png或.jpg格式保存文件。如下所示: Robot r = new Robot(); Toolkit t = Toolkit.getDefaultToolkit(); Dimension d = t.getScreenSize(); Image i = r.createScreenCapture(new Rectangle(0,0,d.width,d.height)); 像这

我想用java拍摄桌面屏幕的快照。 我怎样才能做到这一点

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

如下所示:

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

Robot r = new Robot();
Toolkit t = Toolkit.getDefaultToolkit();
Dimension d = t.getScreenSize();
Image i = r.createScreenCapture(new Rectangle(0,0,d.width,d.height));
在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));

}
...
在下面的链接中解释

在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));

}
...
在下面的链接中解释


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


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

试试这个:

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));
试试这个:

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));
r.createScreenscapture(新矩形(0,0,d.width,d.height))
r.createScreenscapture(新矩形(0,0,d.宽度,d.高度))