使用setFitWidth()
/ setFitHeight()
方法在JavaFX中缩放的图像与在图形编辑器中预设的图像相比,质量明显低于我的Photoshop。
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Image Resize Test");
StackPane root = new StackPane();
root.setStyle("-fx-background-color: gray;");
ImageView imageView = new ImageView("save.png");
//ImageView imageView = new ImageView("save_small.png");
imageView.setPreserveRatio(true);
imageView.setFitHeight(15);
root.getChildren().add(imageView);
primaryStage.setScene(new Scene(root, 600, 600));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
左侧的图像在JavaFX中缩放,右侧的图像在Photoshop中预缩放。第一个图像的白色边框仅在其右侧清晰可见,而第二个图像(在Photoshop中调整大小)在所有侧面都有可见的微弱边框,这更好地代表了周围有白色边框的原始图像。
我尝试设置imageView.setSmooth(true)
和SceneAntialiasing.BALANCED
,但结果相同。
这些是本例中使用的PNG图像: