java - 为什么 JavaFX 会自动调整图像大小?

标签 java javafx-11

我有一个 200x200 的图像。

enter image description here

我将上面的图像加载到 ImageView 中,但是当我运行 JavaFX 应用程序时,图像显得更大。我截取了屏幕截图并在 Paint.NET 中打开它进行确认。

enter image description here

为什么图像现在是 348x348?我尝试了所有我能想到的将宽度和高度限制为 200x200 (下面的示例代码)。这个Images automatically resized帖子是我能找到的与我的问题最接近的内容,但我不是为 Android 开发。

public class ImageTest extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Pane pane = new Pane();
        pane.setPrefHeight(200);
        pane.setPrefWidth(200);
        pane.setMaxHeight(200);
        pane.setMaxWidth(200);

        Image image = new Image(getClass().getClassLoader().getResourceAsStream("images/red square.png"));
        ImageView imageView = new ImageView( image );
        imageView.setImage(image);
        imageView.setFitHeight(200);
        imageView.setFitWidth(200);
        imageView.setPreserveRatio(true);
        imageView.setSmooth(false);
        pane.getChildren().add(imageView);

        Scene scene = new Scene( pane, 200, 200 );
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

最佳答案

图像正在加载

您可以尝试加载预定义大小的图像。 默认情况下,它不会保留 width:height 比例:您可以使用

Image image = new Image("images/red square.png", 200, 200, true, false);

您可以在 javadocs 中查看有关该构建器的信息

<小时/>

image view使用:

ImageView imageView = new ImageView("images/red square.png");
imageView.setPreserveRatio(true)

关于java - 为什么 JavaFX 会自动调整图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61262429/

相关文章:

JavaFX访问内部webkit文档

JavaFX 11 : IllegalAccessError when creating Label

java - 解析 WSDL 以提取服务/端口元素

java - 在Java中,如何使用我自己的比较标准对未实现Comparable的对象进行排序?

java - 通过java进行scp传输

java - 使用 JDK 11 在 Mac 上打开 .jar 文件失败并出现 RuntimeException

Groovy DSL 'run' 的 Gradle Kotlin DSL 等效项?

javafx - SwingFXUtils 发生了什么?

java - jetty + SpringMVC : Error when set configureDefaultServletHandling because cannot find the default servlet name

java - 在 Main 中创建的输入变量与在 Method 中创建的输入变量的值不同