Java定期自动截屏的代码(未测试)

来源:互联网 发布:拜占庭 知乎 编辑:程序博客网 时间:2024/05/29 16:32
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 java.util.Timer;import java.util.TimerTask;import javax.imageio.ImageIO;/******************************************************************* * 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" * This JavaBean is used to snapshot the GUI in a * Java application! You can embeded * it in to your java application source code, and us * it to snapshot the right GUI of the application * @see javax.ImageIO * @version 1.0 * *********************************************************************/public class GuiCamera extends TimerTask { private String fileName;//文件的前缀 private String defaultName = "GuiCamera"; static int serialNum = 0; private String imageFormat;//图像文件的格式 private String defaultImageFormat = "png"; Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); /****************************************************************  * 默认的文件前缀为GuiCamera,文件格式为PNG格式  * The default construct will use the default  * Image file surname "GuiCamera",  * and default image format "png"  ****************************************************************/ public GuiCamera() {  fileName = defaultName;  imageFormat = defaultImageFormat; } /****************************************************************  * 本构造支持JPG和PNG文件的存储  * @param s the surname of the snapshot file  * @param format the format of the  image file,  * it can be "jpg" or "png"  ****************************************************************/ public GuiCamera(String s, String format) {  fileName = s;  imageFormat = format; } /****************************************************************  * 对屏幕进行拍照  * snapShot the Gui once  ****************************************************************/ public void snapShot() {  try {   // 拷贝屏幕到一个BufferedImage对象screenshot   BufferedImage screenshot = (new Robot())     .createScreenCapture(new Rectangle(0, 0, (int) dimension       .getWidth(), (int) dimension.getHeight()));   // 根据文件前缀变量和文件格式变量,自动生成文件名   String name = fileName + "." + imageFormat;   File f = new File(name);   System.out.print("Save File " + name);   //   将screenshot对象写入图像文件   ImageIO.write(screenshot, imageFormat, f);   System.out.print("..Finished!/n");  } catch (Exception ex) {   System.out.println(ex);  } } public void run() {  snapShot(); } public static void main(String[] args) {  Timer timer = new Timer();  int fileNumber = 0;  timer.schedule(new GuiCamera("C://11//Hello" + ++fileNumber, "png"), 0,    10000); }} 
0 0
原创粉丝点击