Java实现屏幕截图

话不多说,看代码:

package pingmujietu;

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.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.imageio.ImageIO;

// 截取计算机当前屏幕显示的画面
// 无需引入其他jar包,Java自带组件即可完成该功能
public class CaptureScreen {
	 
    public static void captureScreen(String fileName, String folder) throws Exception {
 
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        Robot robot = new Robot();
        BufferedImage image = robot.createScreenCapture(screenRectangle);
        // 截图保存的路径 
        File screenFile = new File(fileName);    
        // 如果路径不存在,则创建  
        if (!screenFile.getParentFile().exists()) {  
            screenFile.getParentFile().mkdirs();  
        } 
        //判断文件是否存在,不存在就创建文件
        if(!screenFile.exists()&& !screenFile .isDirectory()) {
            screenFile.mkdir();
        }
        
        File f = new File(screenFile, folder);        
        ImageIO.write(image, "png", f);
    }
 
    public static void main(String[] args) {
    	// 定时器,每个5秒截屏一次
    	Timer qTimer = new Timer();
		qTimer.schedule(new TimerTask() {
 
			@Override
			public void run() {
				Date dt=new Date();
				SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
				SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMddHHmmss");
				String data=sdf.format(dt);
				String rd=sdf1.format(dt);
				try {
					captureScreen("F:\\image\\"+data,rd+".png");
					System.out.println("图片名称:" + (rd+".png"));
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}, new Date(), 5000);// 定时每5s
    }
}

猜你喜欢

转载自blog.csdn.net/tanwenfang/article/details/89085682