如何在java中捕获屏幕的脏部分?

如何在java中捕获屏幕的脏部分?,java,screen-capture,dirtyread,dirtyrectangle,Java,Screen Capture,Dirtyread,Dirtyrectangle,我正在开发RDP应用程序。其中,服务器必须发送屏幕的脏部分,客户端必须更新图像的该部分。 我能够发送的桌面使用机器人类作为总屏幕 BufferedImage bufferedImage = robot.createScreenCapture(new Rectangle(0,0,Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height)); 如果我想将屏

我正在开发RDP应用程序。其中,服务器必须发送屏幕的脏部分,客户端必须更新图像的该部分。 我能够发送的桌面使用机器人类作为总屏幕

BufferedImage bufferedImage = robot.createScreenCapture(new Rectangle(0,0,Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height));
如果我想将屏幕的脏部分发送给客户端,那么如何识别桌面屏幕的脏区域并捕获该屏幕


请告诉我用java识别屏幕脏区的步骤。

你应该接受更多的答案。这在java中是不可能的。最好是启动一个线程并定期探测鼠标位置,当鼠标位置发生变化时,您可以尝试计算新旧位置之间的变化,并设置鼠标所覆盖区域的屏幕截图。您唯一的其他选择是创建一个到底层操作系统的JNI连接,并希望它有某种通知框架:PIt将比@MadProgrammer提到的方法慢,但一个简单的方法是:1)截图。2) 稍后,再截图一次。3) 将它们逐像素或(更快)逐字节进行比较。4) 将更改的区域连同位置信息封装到一系列图片中。-哦,还要传输鼠标位置,以便以后在客户端上绘制。如何通过比较两幅图像来识别脏区屏幕你应该接受更多答案。正如@BevynQ昨天指出的那样。