屏幕截图截取屏幕图像是实现远程控制或屏幕录像的基础,只有不断的获取屏幕图像并形成动态的影像,才能对屏幕进行监控。Java语言在java.awt包中定义了Robot类,该类提供了createScreenCapture()方法可以获取屏幕图像并保存在BufferedImage类的图像对象中。该方法的语法格式如下: public BufferedImage createScreenCapture(Rectangle screenRect) screenRect:要截取的屏幕图像的矩形区域,它是Rectangle类的实例对象。 返回值:返回参数指定的矩形区域的屏幕图像。 Toolkit toolkit = Toolkit.getDefaultToolkit(); // 获取工具类的实例对象 screenSize = toolkit.getScreenSize(); // 获取屏幕大小 rectangle = new Rectangle(screenSize); // 创建屏幕大小的矩形对象 ……// 省略部分代码 while (!socket.isClosed()) { try { Thread.sleep(100); // 线程休眠0.1秒 // 截取整个屏幕大小的图像 BufferedImage image = robot.createScreenCapture(rectangle); encoder.encode(image); // 将图像编码到指定的网络输出流 } catch (Exception e) { e.printStackTrace(); try { bout.close(); // 关闭输出流 outputStream.close(); socket.close(); // 关闭网络连接 JOptionPane.showMessageDialog(frame, "协助异常终止。"); } catch (IOException e1) { e1.printStackTrace(); } } } 上述代码截取整屏图像之后的的效果如图6.5所示。 |