当前位置: 首页 > 面试题库 >

如何在JavaFX 2中将场景图的内容输出到图像

娄建义
2023-03-14
问题内容

如何将SceneJavaFX
2中图形的内容输出到Image。实际上,我正在开发一个基本上设计卡片的应用程序。因此,用户只需单击各种选项即可自定义场景。最后,我想将场景内容导出到图像文件。我怎么做



问题答案:

为此,在FX 2.2中出现了新的快照功能。你可以说

WritableImage snapshot = scene.snapshot(null);

对于较旧的FX,您可以使用AWT机械手。这不是一个很好的方法,因为它需要启动整个AWT堆栈。

            // getting screen coordinates of a node (or whole scene)
            Bounds b = node.getBoundsInParent(); 
            int x = (int)Math.round(primaryStage.getX() + scene.getX() + b.getMinX());
            int y = (int)Math.round(primaryStage.getY() + scene.getY() + b.getMinY());
            int w = (int)Math.round(b.getWidth());
            int h = (int)Math.round(b.getHeight());
            // using ATW robot to get image
            java.awt.Robot robot = new java.awt.Robot();
            java.awt.image.BufferedImage bi = robot.createScreenCapture(new java.awt.Rectangle(x, y, w, h));
            // convert BufferedImage to javafx.scene.image.Image
            java.io.ByteArrayOutputStream stream = new java.io.ByteArrayOutputStream();
            // or you can write directly to file instead
            ImageIO.write(bi, "png", stream);
            Image image = new Image(new java.io.ByteArrayInputStream(stream.toByteArray()), w, h, true, true);


 类似资料:
  • 问题内容: 我有一个prefHeight = 70 //没有prefWidth或任何宽度的HBox … 我也有一个prefWidth = 50 //没有prefHeight或任何高度的窗格… 我只想使用某些循环将窗格的多个实例添加到HBox。 当我在循环主体中添加(pane)时,出现以下错误。 我需要找到克隆窗格的方法(因为它按值传递)。有人可以帮我吗?(对我来说,拍摄快照不起作用,因为未使用父级

  • 问题内容: 我有一个应用程序,其中包含带有标题和菜单的HomeScene.fxml文件。HomeScene还具有dashboardPane,应在按下菜单按钮后对其进行动态更改。仪表板窗格内容应从另一个fxml文件加载,例如说“ FinancesPane.fxml”或“ SettingsPane.fxml”。 我正在尝试在HomeController中替换dashboardPane的内容: 我的Fi

  • 我有一个潜水舱,水太多了。它基本上包括一个大的组织结构图。我想做的是导出div的全部内容,而不是使用html2canvas库导出可见部分,但到目前为止我还无法实现。下面的代码段不会呈现全部内容。有没有办法做到这一点? 我正在使用BasicPrimitions库生成组织结构图。它接受一个div并将所有元素插入其中。因为我的图表相当大,所以它从容器中溢出。Xhtml代码如下所示:

  • 问题内容: 我的CSS文件在: 项目/网站/支持/样式/file.css 我的图片在: Project / Web / images / image.png 我想要这个图像在我的CSS文件中。 我努力了 : 但。我在页面中没有得到这张图片。 在CSS文件中指定图像文件路径的正确方法是什么? 问题答案: 您的CSS在这里:Project / Web / Support / Styles / file

  • 概念 jMonkeyEngine3是一个基于场景图的3D游戏引擎,因此有必要对场景图的概念进行一些说明。jME3的场景图通过Spatial、Geometry、Node这3个类来实现,它们之间的关系如下图: 场景图(Scene Graph)是一种数据结构,用于管理游戏场景中的物体,场景中的每个物体都被称为Spatial。 Spatial表示3D空间中的一个物体,它在空间中有三种线性变换:位移(Tra