2016-03-12 2 views
0

Ce que je veux faire est de prendre une capture d'écran de la scène, j'obtenu avec le code suivantComment améliorer la qualité DPI de l'image résultant d'une scrennshot scène dans 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(); 
    } 

La capture d'écran est parfait le problème que j'ai est avec la qualité de la capture d'écran, dont je ne sais pas de quelles dépendances, j'essaye de rendre la scène plus grande mais la qualité de dpi reste la même (70) créant une image très désagréable, je cherche pour améliorer la dpi de la capture d'écran au moins 300 dpi pour l'impression

this is the quality that i get

Répondre

2

Un simple sceenshot est une capture d'écran et non un rendu haute résolution de votre scène. Vous ne serez pas en mesure d'obtenir plus de pixels dans votre image qu'il n'y en a sur votre écran. Donc, sauf si vous avez un écran de 300 DPI, alors ce que vous voulez n'est pas possible avec une simple capture d'écran.

Si vous voulez une image à haute résolution de votre scène, vous devez utiliser d'autres techniques comme le rendu hors écran. Un exemple peut être trouvé ici:

http://www.ambracode.com/index/show/1217604

+0

offscreen rendu résultat de la même qualité en dpi de l'instantané, il a quelque chose à voir avec la méthode de cliché il me semble que le travail peut-être avec le WritableImage je peux améliorer la qualité mais je ne sais pas comment – CorrOrtiz

+0

Non, avec le rendu hors écran, vous pouvez réaliser n'importe quel DPI que vous aimez mais vous devez monter votre scène en conséquence, bien sûr. – mipa

+0

@mipa Le lien est cassé. – MikaelF