获取屏幕特定部分的 snapshot/screenshot (javaFX)

Taking a snapshot/screenshot of a certain portion of a screen (javaFX)

我希望能够在 javaFX 中截取场景的特定部分。 Here is an image of what the scene looks like。我想输入参数(例如区域的大小和区域的位置),这意味着只有图形是 screenshotted/snpashotted。然而,图表本身是由标签和图像组成的。 截图时,我想通过 WritableImage 或将其复制到剪贴板来保存截图,以更容易的为准。 我该怎么做?如果你需要知道,我正在使用场景生成器。

只要您的整个 'graph'(包括其所有标签等)是 javafx.scene.Node,您就可以使用 snapshot 函数。

如果它们不在同一节点中,请考虑将它们全部添加为 GroupParentRegion 的子节点。

在 Scene Builder 中执行此操作的方法是进入 Miscellaneous,添加 'Group' 或 'Region',然后在 Document Hierarchy 中将要截屏的每个标签和节点拖到该组中。您也可以使用 'Containers' 下的任何内容,但它们具有 Group 所没有的其他格式。给小组一个 fx:id 并在您的 java 代码中对小组调用 snapshot。就是这么简单。