【发布时间】:2013-08-03 15:18:26
【问题描述】:
我想在 java 中拍摄桌面屏幕的快照。 我该怎么做。
这类似于在ms-paint中按下打印屏幕并粘贴数据, 然后将文件保存为 .png 或 .jpg 格式。
【问题讨论】:
标签: java image-processing
我想在 java 中拍摄桌面屏幕的快照。 我该怎么做。
这类似于在ms-paint中按下打印屏幕并粘贴数据, 然后将文件保存为 .png 或 .jpg 格式。
【问题讨论】:
标签: java image-processing
将以下代码复制并粘贴到您的 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)); } ...
在下面的链接中解释
【讨论】:
像这样:
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));
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));
【讨论】:
试试这个:
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.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);
【讨论】: