0
我正在尋找一種方法來渲染一個場景從視圖中隱藏,然後創建第二個縮小的副本初始顯示。顯然,我可以再次渲染內容以創建只有更小的副本。用另一種語言編寫的原始代碼雖然使用平滑(空間過濾)收縮功能產生了更好的結果來創建小副本。 JavaFX中有這樣的位圖複製/縮小/平滑功能嗎?它有什麼用處?收縮JavaFX圖形
我正在尋找一種方法來渲染一個場景從視圖中隱藏,然後創建第二個縮小的副本初始顯示。顯然,我可以再次渲染內容以創建只有更小的副本。用另一種語言編寫的原始代碼雖然使用平滑(空間過濾)收縮功能產生了更好的結果來創建小副本。 JavaFX中有這樣的位圖複製/縮小/平滑功能嗎?它有什麼用處?收縮JavaFX圖形
您可以創建一個場景的快照作爲WritableImage
如下:
Scene scene = ... ;
Image image = scene.snapshot(null);
,然後在圖像視圖中顯示它的縮放版本:
ImageView sceneImage = new ImageView();
sceneImage.setFitWidth(desiredWidth);
sceneImage.setFitHeight(desiredHeight);
// force aspect ratio to be preserved if fitWidth and fitHeight would distort it:
sceneImage.setPreserveRatio(true);
// this provides a tiny bit of control over the scaling used:
sceneImage.setSmooth(true);
sceneImage.setImage(image);
非常感謝。 – Richard
有一個'setScaleX (double value)'Node'類中的'函數,這是你在找什麼? – Oswald
我認爲,我希望我沒有誤解,setScale函數可以用作「實現它的另一種方式」的一部分。換句話說,如果我要重畫場景而不是執行位圖副本。 – Richard
不完全確定我明白這個問題,但是您可以['snapshot'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/Scene.html#snapshot-javafx.scene。 image.WritableImage-)現有的場景來創建一個'Image',然後顯示縮放在['ImageView']中的圖像(http://docs.oracle.com/javase/8/javafx/api/javafx/scene/圖像/ ImageView.html)。使用'setFitHeight()','setFitWidth()','setPreserveRatio()'和'setSmooth()'來控制縮放。這隻會給出場景的靜態視圖,所以如果有動畫,就不會在圖像中看到它們。 –