我想做的是对场景进行截图,我用以下代码实现了这一点
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 的屏幕,否则您想要的东西是无法通过简单的屏幕截图实现的。
如果您想要场景的更高分辨率图像,那么您必须使用其他技术,例如离屏渲染。 可以在此处找到示例:
关于java - 如何提高 JavaFX 中场景屏幕截图生成的图像的 DPI 质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35964334/