0

I am attempting to automatically scale an image view to the parent when the parent changes size. In the past, I used this solution:

imageView.setPreserveRatio(true);
Pane pane = new Pane();
testGridPane.add(pane, 1, 1);
imageView.fitWidthProperty().bind(pane.widthProperty());
imageView.fitHeightProperty().bind(pane.heightProperty());

from this post: JFX scale image up and down to parent

This works and scales the image. However, this method has an issue where the image will become pixelated when scaled to certain ratios. These two posts seem to be referring to the issue I'm experiencing: JavaFX ImageView without any smoothing In the second post, this seems to be exactly what I'm encountering: JavaFx Image fit to Pane bad Quality

In that post, the OP mentioned that setting the width instead of using fitwidth looked better. However, I'm not sure how I could implement that in my solution as my image needs to scale with the parent, not just have a size set once. I've also looked through every other stack overflow post I can find on imageview scaling or imageview pixelated and I've haven't been able to find an answer.

Any help would be greatly appreciated!

Edit: I still have not been able to find a solution to this. The issue is happening when images are scaled down and they are losing quality. This bug report seems to explain the issue: https://bugs.openjdk.java.net/browse/JDK-8089202

  • 1
    What is the default size of your original image? – Sai Dandem Nov 14 '18 at 05:36
  • This is possibly related to this bug: https://bugs.openjdk.java.net/browse/JDK-8211861 Unfortunately, there doesn't seem to be any workaround or a fix in progress... – Itai Nov 14 '18 at 09:10
  • One possible solution is to use high resolution images or atleast the size of your max scale. This way you will not encounter blurriness. If you can use SVG your images, then that should be even more the favorable approach. – Sai Dandem Nov 14 '18 at 23:38

0 Answers0