Java:在浏览器中截取可见区域的屏幕截图

时间:2011-12-29 09:06:11

标签: java screenshot

有没有办法在Java浏览器中删除显示屏的屏幕截图,减去浏览器窗口。流程是:

在浏览器中加载网页。然后对Java服务进行AJAX调用,该服务使用以下代码捕获屏幕截图:How to take a screenshot in Java?

这里的问题是我只想捕获浏览器中的可见区域,不包括浏览器窗口,Windows任务栏和其他不需要的东西。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以测量可显示区域的大小并仅捕获该区域。

对于 AJAX调用Java服务部分是不可行的。

答案 1 :(得分:0)

正如@OscarRyz已经提到的,AJAX调用在这里无关紧要。 您必须创建调用new Robot().checkScreenCaptureAllowed()的Java小程序。这将捕获整个屏幕。

问题是如何理解可见区域的位置。你可能会这样做。您必须在applet中创建至少一个可见元素。这个元素甚至可能非常小(例如一个像素),因此用户不会看到它。然后,您可以调用getLocationOnScreen(),为您提供屏幕上的绝对坐标。如果您的Java小程序位于左上角,则此区域是您的可见区域开始的位置。

JavaScript允许您了解当前窗口的高度和宽度:window.innerWidhtwindow.innerHeight。所以,您现在可以拍摄屏幕截图并剪切所需的区域。

但是请考虑new Robot().checkScreenCaptureAllowed()检查READ_DISPLAY_PIXELS_PERMISSION并且我不相信您对未签名的小程序拥有此类权限,因此您必须签署您的小程序。

要避免此问题,请查看以下内容:http://html2canvas.hertzen.com/ - “捕获”屏幕并仅使用JavaScript的脚本。