通过Robot截取屏幕简单事例
package com.wyh.io;
import java.awt.Dimension;
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 TestRobot implements Runnable {
// 文件名
private String fileName;
// 文件格式
private String imageFormat;
//文件名序号
private static int incrmentNum = 1;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getImageFormat() {
return imageFormat;
}
public void setImageFormat(String imageFormat) {
this.imageFormat = imageFormat;
}
public TestRobot() {
}
public TestRobot(String s, String format) {
fileName = s;
imageFormat = format;
}
// 截取桌面图象
public void startSnap(int i) {
try {
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
// 通Robot获当前屏幕对象
BufferedImage screenshot = (new Robot())
.createScreenCapture(new Rectangle(0, 0, (int) dimension
.getWidth(), (int) dimension.getHeight()));
String name = fileName + incrmentNum + "." + imageFormat;
ImageIO.write(screenshot, imageFormat, new File(name));
incrmentNum++;
System.out.println("已经 保存线程 [" + i + "]" + " " + name);
} catch (Exception ex) {
System.out.println(ex);
}
}
public void run() {
System.out.println("开始截取......");
for (int i = 1;; i++) {
this.startSnap(i);
try {
Thread.sleep(3800);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// test in main
public static void main(String[] a) {
TestRobot testRobot = new TestRobot("D:\\javaApp\\TestApp\\test", "jpg");
Thread thread = new Thread(testRobot);
thread.start();
}
}