如何提高 JavaFX 场景截图产生的图像的 DPI 质量
How to better the DPI quality of the image resulting from a scene scrennshot in JavaFX
我想做的是对场景进行截图,我用下面的代码实现了
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 的屏幕,否则你想要的不是一个简单的屏幕截图。
如果您想要更高分辨率的场景图像,则必须使用其他技术,例如离屏渲染。 可在此处找到示例:
我想做的是对场景进行截图,我用下面的代码实现了
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 的屏幕,否则你想要的不是一个简单的屏幕截图。
如果您想要更高分辨率的场景图像,则必须使用其他技术,例如离屏渲染。 可在此处找到示例: