Java 随机捉屏

无聊之间,想写一个随机保存屏幕状态的小程序。如下:

代码
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Date;

import javax.imageio.ImageIO;

public class RobotT {
    
    
/**
     * Main
     * <p>
     *     a robot test
     * </p>
     
*/
    
public static void main(String[] args) {
        RobotT t 
= new RobotT();
        t.run();
    }

    
/*
     * auto run 
     * random save image
     
*/
    
private void run(){
        
        
try {
            
//robot to catch screen
            Robot ro = new Robot();
            
//set screen Area
            Rectangle rect = initRectangleSize();
            String saveFloder 
= "d:\\pcs\\";
            File folder 
= new File(saveFloder);
            
if(!folder.exists())folder.mkdirs();
            saveFloder 
= folder.getPath() + File.separator;
            
while(true){
                BufferedImage bufferImage 
= ro.createScreenCapture(rect);
                
//set pic name
                String picName = String.valueOf(new Date().getTime());
                
boolean re = ImageIO.write(bufferImage, "png"new File(saveFloder + picName + ".png"));
                
//failed to save
                if(!re){throw new IOException();}
                
//set sleep time
                Thread.sleep(3000);
            }
        } 
catch (Exception e) {
            System.out.println(
"Error !\t"+e.getMessage());
        }
    }
    
    
/**
     * initialize Rectangle's Size
     * <p>
     *     initialize Rectangle's Size
     * </p>
     * 
     * 
@return Rectangle  screen Area
     
*/
    
private Rectangle initRectangleSize(){
        
//image size
        Point point = new Point(1,1);
        Dimension dimension 
= new Dimension(500500);
        Rectangle rect 
= new Rectangle(point, dimension);
        
return rect;
    }
}


 

 请大家指导。

posted on 2010-02-10 14:41  Luxs  阅读(231)  评论(0)    收藏  举报

导航