2
假設我在StackPane
上有N層,我在StackPane
上做了混合,繪圖,圖像,矩形等。我將如何去保存結果?即什麼顯示在我的屏幕上StackPane
。JavaFX:將窗格的視圖保存爲圖像
一般來說,假設我有任何可繪製的JavaFX元素,我將如何繪製該特定元素到圖像文件。
我知道擺動會提供其getGraphics()
直接繪製到圖像的像素緩衝區,但我找不到任何類似的Node
或Pane
。
假設我在StackPane
上有N層,我在StackPane
上做了混合,繪圖,圖像,矩形等。我將如何去保存結果?即什麼顯示在我的屏幕上StackPane
。JavaFX:將窗格的視圖保存爲圖像
一般來說,假設我有任何可繪製的JavaFX元素,我將如何繪製該特定元素到圖像文件。
我知道擺動會提供其getGraphics()
直接繪製到圖像的像素緩衝區,但我找不到任何類似的Node
或Pane
。
您可以採取的Node
的snapshot
並保存到文件
涵蓋了以下內容:Take a snapshot with JavaFX!
我傾向於使用類似下面:
public void captureAndSaveDisplay(){
FileChooser fileChooser = new FileChooser();
//Set extension filter
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("png files (*.png)", "*.png"));
//Prompt user to select a file
File file = fileChooser.showSaveDialog(null);
if(file != null){
try {
//Pad the capture area
WritableImage writableImage = new WritableImage((int)getWidth() + 20,
(int)getHeight() + 20);
snapshot(null, writableImage);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(writableImage, null);
//Write the snapshot to the chosen file
ImageIO.write(renderedImage, "png", file);
} catch (IOException ex) { ex.printStackTrace(); }
}
}
泰!我現在看到我的問題確實是重複的,谷歌沒有提供任何有用的東西。我甚至沒有在我的搜索中考慮「快照」這個詞。 – arynaq