tom*_*mmY 5 java javafx image-processing antialiasing
我ImageView在 JavaFX 中制作了一个并将像素艺术加载到其中。我放大了,但我无法清楚地看到艺术的像素。问题应该出在抗锯齿上。所以我需要清楚地看到第二个链接上的像素。如何关闭抗锯齿功能?
我尝试过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);}
}
Run Code Online (Sandbox Code Playgroud)
像素艺术.png:

一种方法是在构建Image. 将构造函数的最后一个参数, smooth, 设置为false。
Image image = new Image("pixelart.png", 400, 400, true, false);
Run Code Online (Sandbox Code Playgroud)
经测试:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |