JavaFX Auto Scale Image View without blurriness
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
java javafx imageview javafx-8 scaling
add a comment |
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
java javafx imageview javafx-8 scaling
1
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
This is possibly related to this bug: 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 9: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
add a comment |
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
java javafx imageview javafx-8 scaling
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
java javafx imageview javafx-8 scaling
java javafx imageview javafx-8 scaling
edited Nov 25 '18 at 20:59
Tyler Bench
asked Nov 14 '18 at 5:32
Tyler BenchTyler Bench
264
264
1
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
This is possibly related to this bug: 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 9: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
add a comment |
1
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
This is possibly related to this bug: 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 9: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
1
1
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
This is possibly related to this bug: 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 9:10
This is possibly related to this bug: 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 9: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
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
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293742%2fjavafx-auto-scale-image-view-without-blurriness%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293742%2fjavafx-auto-scale-image-view-without-blurriness%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
What is the default size of your original image?
– Sai Dandem
Nov 14 '18 at 5:36
This is possibly related to this bug: 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 9: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