在 JavaFX 中禁用 ImageView 抗锯齿
Disable ImageView Anti-Aliasing in JavaFX
我在 JavaFX 中制作了一个 ImageView
并将像素艺术加载到其中。而且我放大了,但是我看不清楚艺术的像素点。问题应该是抗锯齿。所以我需要清楚地看到第二个 link 上的像素。如何关闭抗锯齿功能?
我试过 img1.setSmooth(false);
我用JavaFX做了什么:
它应该是什么样子: //用 piskel 制作的预览
这是我的代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override public void start(Stage primaryStage) {
AnchorPane root = new AnchorPane();
StackPane hb = new StackPane();
Image image = new Image("pixelart.png");
ImageView img = new ImageView(image);
img.setFitWidth(500);
img.setFitHeight(500);
img.setSmooth(false);
hb.getChildren().add(img);
root.getChildren().addAll(hb);
Scene scene = new Scene(root,800,400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {launch(args);}
}
pixelart.png:
一种方法是在构建 Image
. Set the last argument of the constructor、smooth
到 false
.
时关闭平滑
Image image = new Image("pixelart.png", 400, 400, true, false);
经测试:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Image image = new Image("pixelart.png", 400, 400, true, false);
ImageView view = new ImageView(image);
root.getChildren().add(view);
Scene scene = new Scene(root, 450, 450);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我在 JavaFX 中制作了一个 ImageView
并将像素艺术加载到其中。而且我放大了,但是我看不清楚艺术的像素点。问题应该是抗锯齿。所以我需要清楚地看到第二个 link 上的像素。如何关闭抗锯齿功能?
我试过 img1.setSmooth(false);
我用JavaFX做了什么:
它应该是什么样子:
这是我的代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override public void start(Stage primaryStage) {
AnchorPane root = new AnchorPane();
StackPane hb = new StackPane();
Image image = new Image("pixelart.png");
ImageView img = new ImageView(image);
img.setFitWidth(500);
img.setFitHeight(500);
img.setSmooth(false);
hb.getChildren().add(img);
root.getChildren().addAll(hb);
Scene scene = new Scene(root,800,400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {launch(args);}
}
pixelart.png:
一种方法是在构建 Image
. Set the last argument of the constructor、smooth
到 false
.
Image image = new Image("pixelart.png", 400, 400, true, false);
经测试:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Image image = new Image("pixelart.png", 400, 400, true, false);
ImageView view = new ImageView(image);
root.getChildren().add(view);
Scene scene = new Scene(root, 450, 450);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}