JavaFX Auto Scale Image View without blurriness











up vote
0
down vote

favorite












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










share|improve this question




















  • 1




    What is the default size of your original image?
    – Sai Dandem
    Nov 14 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 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 at 23:38















up vote
0
down vote

favorite












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










share|improve this question




















  • 1




    What is the default size of your original image?
    – Sai Dandem
    Nov 14 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 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 at 23:38













up vote
0
down vote

favorite









up vote
0
down vote

favorite











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










share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 25 at 20:59

























asked Nov 14 at 5:32









Tyler Bench

264




264








  • 1




    What is the default size of your original image?
    – Sai Dandem
    Nov 14 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 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 at 23:38














  • 1




    What is the default size of your original image?
    – Sai Dandem
    Nov 14 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 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 at 23:38








1




1




What is the default size of your original image?
– Sai Dandem
Nov 14 at 5:36




What is the default size of your original image?
– Sai Dandem
Nov 14 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 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 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 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 at 23:38

















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',
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
});


}
});














draft saved

draft discarded


















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






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

How to send String Array data to Server using php in android

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

Is anime1.com a legal site for watching anime?