【发布时间】:2013-05-19 12:34:14
【问题描述】:
我学会了使用snapshot 从一个节点中创建一个Image 对象。拥有多个包含各种笔画的Groups,我现在正尝试创建一个包含两组笔画的单个图像。为此,我使用以下代码:
Group strokes1;
Group strokes2;
WriteableImage im = null;
SnapshotParameters params = new SnapshotParameters();
params.setFill(Color.TRANSPARENT);
params.setViewport(new Rectangle2D(0, 0, 400, 400));
im = strokes1.snapshot(params, im);
im = strokes2.snapshot(params, im);
snapshot 函数的文档说
"如果图片不为空,则将节点渲染到现有图片中。"
但是,生成的图像im 仅包含来自strokes2 的笔画。我做错了什么?
【问题讨论】:
-
做更多测试,当图像被传递到
snapshot函数时,SnapshotParameters中的fill参数似乎被忽略了 - 这可能吗? -
您能否发布一个可运行的示例来说明您正在尝试做什么?
-
老实说,与此相关的代码真的不多。所以有一些
EventHandler<MouseEvent>创建了Path对象,这些对象插入strokes1或strokes2(取决于某些条件)。strokes1和strokes2都被添加到带有drawingPane.getChildren().add(strokes1)和drawingPane.getChildren().add(strokes2)的Pane。 -
问题是,如果我注释掉 'im = strokes1.snapshot(params, im);',我会看到它下面的行,反之亦然。所以单行工作正常,但如果我尝试合并两个快照,它会失败。