如何以更好的质量渲染图像?
该节点是一个带有 css 的 Pane:
.imagePane {
-fx-background-repeat: no-repeat;
-fx-background-image: url('../../img/logo/icon_white.png');
-fx-background-size: cover;
}
应用程序内的图像:
链接到 PSD: https://drive.google.com/file/d/0B0YK52wzjJg3c2NFc0NSTDNKWGM/view?usp=sharing
我试着把最好的图像质量,但它仍然会导致像素化
最佳答案
我建议您尝试在 Java 代码中初始化一个背景。 您可以将背景设置到 Pane 中。
Pane#setBackground(background);
如果您初始化一个 Background,您将首先初始化一个 BackgroundImage,而 BackgroundImage 需要一个 Image。在图像的构造函数中,您可以定义 requestedWith 和 requestedHeight。这些是应该加载文件的分辨率的属性。 最终代码可能如下所示。
pane.setBackground(new Background(new BackgroundImage(new Image(inputStream, 500, 500, true, true), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, new BackgroundSize(pane.getWidth(), pane.getHeight(), false, false, false, true))));
在这种情况下,图像将以 500 x 500 的分辨率加载并调整到 pane.getHeight 和 pane.getWith 中。
关于JavaFX ImagePane 调整大小质量差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419835/