如何将JavaFX 2中的场景图形的内容输出到图像
发布时间:2020-12-15 00:01:52 所属栏目:Java 来源:网络整理
导读:如何将 JavaFX 2中的场景图的内容输出到图像.实际上,我正在开发一款基本上设计卡片的应用程序.因此,用户只需单击各种选项即可自定义场景.最后,我想将场景内容导出到Image文件.我怎么做 ? 解决方法 在FX 2.2中出现了新的快照功能.你可以说 WritableImage sna
如何将
JavaFX 2中的场景图的内容输出到图像.实际上,我正在开发一款基本上设计卡片的应用程序.因此,用户只需单击各种选项即可自定义场景.最后,我想将场景内容导出到Image文件.我怎么做 ?
解决方法
在FX 2.2中出现了新的快照功能.你可以说
WritableImage snapshot = scene.snapshot(null); 使用旧款FX,您可以使用AWT Robot.这不是一个很好的方法,因为它需要整个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()),h,true,true); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |