如何调整JavaFX图像的大小?

adi*_*tsu 3 java javafx

我有一个javafx.scene.image.Image,我想调整它的大小,例如按给定因子缩放它.怎么做(没有转换BufferedImage),有什么选择质量和性能(如插值类型)?

有几个问题看起来很相似,但我找不到任何提出相同问题的人.关键点是输入是一个Image对象(和缩放因子),所需的输出是另一个Image对象.

Jam*_*s_D 11

最简单的方法是:

public Image scale(Image source, int targetWidth, int targetHeight, boolean preserveRatio) {
    ImageView imageView = new ImageView(source);
    imageView.setPreserveRatio(preserveRatio);
    imageView.setFitWidth(targetWidth);
    imageView.setFitHeight(targetHeight);
    return imageView.snapshot(null, null);
}
Run Code Online (Sandbox Code Playgroud)

通过使用较慢的算法调用imageView.setSmooth(...);true以及更好的平滑并false使用更快的算法和更少的平滑,可以对缩放算法的速度/平滑度进行最小量的控制.