如何在JavaFX中更好地改善由场景scrennshot生成的图像的DPI质量

如何在JavaFX中更好地改善由场景scrennshot生成的图像的DPI质量,java,javafx,screenshot,dpi,hdpi,Java,Javafx,Screenshot,Dpi,Hdpi,我想做的是拍摄一个场景的截图,我用下面的代码实现了这一点 WritableImage snapshot = stage.getScene().snapshot(null); File file = new File("src//HE//Utilidades//Imagenes//consul.png"); try { ImageIO.write(SwingFXUtils.fromFXImage(snapshot, null), "png", file);

我想做的是拍摄一个场景的截图,我用下面的代码实现了这一点

    WritableImage snapshot = stage.getScene().snapshot(null);
    File file = new File("src//HE//Utilidades//Imagenes//consul.png");
    try {
        ImageIO.write(SwingFXUtils.fromFXImage(snapshot, null), "png", file);
        //this is for open the screenshot
        Desktop dt = Desktop.getDesktop();
        dt.open(file);

    } catch (IOException e) {
        e.printStackTrace();
    }
屏幕截图很完美我的问题是屏幕截图的质量,我不知道是什么依赖,我试图使场景更大,但dpi的质量保持不变(70)创建一个非常不愉快的图像,我正在寻找一种方法来提高屏幕截图的dpi至少300dpi用于打印


简单的屏幕截图是屏幕截图,而不是场景的高分辨率渲染。您将无法在图像中获得比屏幕上更多的像素。因此,除非你有一个300 DPI的屏幕,那么你想要的是不可能与一个简单的屏幕截图

如果您希望获得更高分辨率的场景图像,则必须使用其他技术,如屏幕外渲染。可以在此处找到一个示例:


简单的屏幕截图是屏幕截图,而不是场景的高分辨率渲染。您将无法在图像中获得比屏幕上更多的像素。因此,除非你有一个300 DPI的屏幕,那么你想要的是不可能与一个简单的屏幕截图

如果您希望获得更高分辨率的场景图像,则必须使用其他技术,如屏幕外渲染。可以在此处找到一个示例:


屏幕外渲染会使快照的dpi质量保持一致。这与快照方法有关。我突然想到,也许使用可写图像可以提高质量,但我不知道如何提高。不,使用屏幕外渲染,您可以实现任何您喜欢的DPI,但您必须相应地放大场景。@mipa链接已断开。屏幕外渲染会导致快照的DPI质量相同。这与快照方法有关。我突然想到,使用可写图像可能可以提高质量,但我不知道如何使用屏幕外渲染,您可以实现任何喜欢的DPI,但您必须相应地放大场景。@mipa链接已断开。