有没有办法在Java浏览器中删除显示屏的屏幕截图,减去浏览器窗口。流程是:
在浏览器中加载网页。然后对Java服务进行AJAX调用,该服务使用以下代码捕获屏幕截图:How to take a screenshot in Java?。
这里的问题是我只想捕获浏览器中的可见区域,不包括浏览器窗口,Windows任务栏和其他不需要的东西。
谢谢
答案 0 :(得分:1)
您可以测量可显示区域的大小并仅捕获该区域。
对于 AJAX调用Java服务部分是不可行的。
答案 1 :(得分:0)
正如@OscarRyz已经提到的,AJAX调用在这里无关紧要。
您必须创建调用new Robot().checkScreenCaptureAllowed()
的Java小程序。这将捕获整个屏幕。
问题是如何理解可见区域的位置。你可能会这样做。您必须在applet中创建至少一个可见元素。这个元素甚至可能非常小(例如一个像素),因此用户不会看到它。然后,您可以调用getLocationOnScreen()
,为您提供屏幕上的绝对坐标。如果您的Java小程序位于左上角,则此区域是您的可见区域开始的位置。
JavaScript允许您了解当前窗口的高度和宽度:window.innerWidht
和window.innerHeight
。所以,您现在可以拍摄屏幕截图并剪切所需的区域。
但是请考虑new Robot().checkScreenCaptureAllowed()
检查READ_DISPLAY_PIXELS_PERMISSION
并且我不相信您对未签名的小程序拥有此类权限,因此您必须签署您的小程序。
要避免此问题,请查看以下内容:http://html2canvas.hertzen.com/ - “捕获”屏幕并仅使用JavaScript的脚本。