我添加了对ImageView
。
现在我想将这些更改保存到其他文件中。我怎么能这样做?
答案 0 :(得分:2)
您需要Node
类的snapshot
功能与SwingFXUtils
的{{3}}方法配对。
拍摄此节点的快照并返回渲染后的图像 准备好了。 CSS和布局处理将为节点和任何节点完成 它的孩子,在渲染之前。整个目标图像 被清除为SnapshotParameters指定的填充Paint。
示例:强>
ImageView imageViewAdjusted = new ImageView(new Image(getClass().getResource("thinking-man.jpg").toExternalForm(), 250, 250, true, true));
ColorAdjust colorAdjust = new ColorAdjust();
colorAdjust.setContrast(0.9);
imageViewAdjusted.setEffect(colorAdjust);
imageViewAdjusted.setCache(true);
imageViewAdjusted.setCacheHint(CacheHint.SPEED);
Button btnSave = new Button("Save to File");
btnSave.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
File outputFile = new File("D:/formattedPicture.png");
BufferedImage bImage = SwingFXUtils.fromFXImage(imageViewAdjusted.snapshot(null, null), null);
try {
ImageIO.write(bImage, "png", outputFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});