Richard
Richard

Reputation: 154

Shrinking JavaFX Graphics

I'm looking for a way of rendering a scene hidden from view and then creating a second shrunken copy for initial display. Plainly I could render the contents a second time to create this copy only smaller. The original code written in another language though produced a better result using a smooth (spatially filtered) shrinking function to create the small copy. Is there such a bitmap copy/shrink/smooth function in JavaFX and is it any good?

Upvotes: 0

Views: 168

Answers (1)

James_D
James_D

Reputation: 209573

You can create a snapshot of a scene as a WritableImage as follows:

Scene scene =  ... ;

Image image = scene.snapshot(null);

and then display a scaled version of it in an image view with:

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);

Upvotes: 1

Related Questions