在Java JDK1.4 中提供的"機(jī)器人"Robot類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測(cè)試應(yīng)用程序運(yùn)行或自動(dòng)控制應(yīng)用程序運(yùn)行。Robot類提供了一個(gè)方法:createScreenCapture(..),可以直接將全屏幕或某個(gè)屏幕區(qū)域的像素拷貝到一個(gè)BufferedImage對(duì)象中,我們只需要將該對(duì)象寫(xiě)入到一個(gè)圖像文件之中,就完成了屏幕到圖像的拷貝過(guò)程。
ScreenDemo類的generateSnapshot()方法用于實(shí)現(xiàn)對(duì)當(dāng)前屏幕的截取。
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 ScreenDemo {
public static File generateSnapshot() {
File snapshotFile = new File("D:/" + System.currentTimeMillis() + ".jpg");
int width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
try {
Robot robot;
robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(width, height));
ImageIO.write(image, "jpg", snapshotFile);
} catch (Exception e) {
e.printStackTrace();
}
return snapshotFile;
}
public static void main(String[] args) {
generateSnapshot();
}
}
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ScreenDemo {
public static File generateSnapshot() {
File snapshotFile = new File("D:/" + System.currentTimeMillis() + ".jpg");
int width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
try {
Robot robot;
robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(width, height));
ImageIO.write(image, "jpg", snapshotFile);
} catch (Exception e) {
e.printStackTrace();
}
return snapshotFile;
}
public static void main(String[] args) {
generateSnapshot();
}
}