zoukankan      html  css  js  c++  java
  • 通过java进行电脑屏幕截图

    package image;
    
    import java.awt.Desktop;
    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 javax.imageio.ImageIO;
    
    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);
            //自动打开
            /*if (Desktop.isDesktopSupported()
                     && Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
                        Desktop.getDesktop().open(f);*/
        }
     
        public static void main(String[] args) {
            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");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     
    }
  • 相关阅读:
    C++头文件保护符和变量的声明定义
    ReactNavtive框架教程(2)
    扩展方法使用
    华为0基础——(练习用)挑7
    HTTP Status 500
    屏蔽DataGridView控件DataError 事件提示的异常信息
    POJ 3630 Phone List Trie题解
    【学习总结】数学-向量叉积
    9.1-9.30推荐文章汇总
    Autolayout环境设置任意个数相等间距排列的按钮的方法
  • 原文地址:https://www.cnblogs.com/feitianshaoxai/p/6560110.html
Copyright © 2011-2022 走看看