【问题标题】:Java : Take screenshot of visible area in the browserJava:截取浏览器中可见区域的屏幕截图
【发布时间】:2011-12-29 17:38:37
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 网络服务器上的代码怎么可能截取您计算机上的某些内容?
  • 您实际上需要使用 Javascript 截取屏幕截图,然后您可以将此图像传递给后台 Java 服务。
  • 我当然希望你不要这样做:programmers.stackexchange.com/questions/126513/…
  • 感谢大家的帮助...我重新考虑了解决方案,现在将所有内容都写入画布,将其转换为 base64 图像并上传到服务器。在服务端,base64被解码,图像被存储。

标签: java screenshot


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    JavaScript 允许您知道当前窗口的高度和宽度:window.innerWidhtwindow.innerHeight。因此,您现在可以进行屏幕截图并剪切您需要的区域。

    但请注意new Robot().checkScreenCaptureAllowed() 会检查READ_DISPLAY_PIXELS_PERMISSION,我认为您对未签名的小程序没有此类权限,因此您必须对您的小程序进行签名。

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

    【讨论】:

      猜你喜欢
      • 2021-07-12
      • 2015-03-23
      • 2019-07-26
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多