屏幕截取软件

 (一) 屏幕截取要先获得屏幕的大小,上代码

      Toolkit是系统工具包的意思;通过这个抽象类可以获得屏幕的尺寸

 

      /*
         * 获取系统工具包,屏幕截取要先获得屏幕的大小
         */
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension dimension =  toolkit.getScreenSize();
        System.out.println("屏幕的高度是:"+dimension.getHeight()+"px,屏幕的宽度是:"+dimension.getWidth()+"px");

 

    控制台输出:屏幕的高度是:768.0px,屏幕的宽度是:1366.0px

 

(二) 屏幕截要获得屏幕的图片,上代码

 

         /*
             * 通过小机器人抓取dimension大小的屏幕图像,输出的是BufferedImage属性的图像
             */
            Robot robot = new Robot();
            Rectangle screenRect = new Rectangle(dimension);
            BufferedImage bufferedImage =  robot.createScreenCapture(screenRect);

 

(三)创建一个窗体,用于展示我们截取的图片

        /*
             * 创建一个窗体,存放小机器人截取的图片
             * 
             */
            screenFrame screenFrame = new screenFrame(dimension);
            screenFrame.setBackGround(bufferedImage);
/*
 * 创建截屏的窗口
 */
class screenFrame{
    //窗口
    private JFrame frame;
    private JLabel background;
    public screenFrame(Dimension dimension) {
        // TODO 自动生成的构造函数存根
        background = new JLabel();
        frame = new JFrame("屏幕截取软件");
        //创建滚动的面板容器
        ScrollPane scrollPane = new ScrollPane();
        frame.add(scrollPane);
        
        //创建滚动面板里面的面板
        //JPanel panel = new JPanel();
        scrollPane.add(background);
        
        //在面板里面添加background
        //panel.add(background);
        
        /*
         * JFrame常用的一些配置操作,没什么好说的
         */
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(dimension);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
    /*
     * 这个方法是当我们存入图片的时候,自动刷新窗体用的
     */
    void setBackGround(BufferedImage bufferedImage){
        background.setIcon(new ImageIcon(bufferedImage));
        frame.repaint();
    }
    
}

(四)要将我们截取的图片保存的本地的目录才行,保存的格式为jpg

        /*
             * 自动存放到本地电脑里面
             */
            //给图片生成一个随机的名字
            String imageName =new String(String.valueOf(System.currentTimeMillis()));
            
            //找一个图片文件输出的目录
            File imageOutFile = new File("C:"+File.separator+"Users"+File.separator+"hacker"+File.separator+"Pictures", imageName+".jpg");
            //利用ImageIO的write方法输出图片
            boolean outSuccess = ImageIO.write(bufferedImage, "jpg", imageOutFile);
            System.out.println(outSuccess);

 (五)上一张我们截取的图片激动人心一下吧

posted @ 2017-03-29 17:33  我们不该这样的  阅读(155)  评论(0)    收藏  举报