viernes, 18 de abril de 2014

Snapshot con JavaFX


En este articulo veremos como hacer una "instantánea" con JavaFx 2.2. Es muy práctica la forma de realizar esto con JavaFx versión 2.2; la idea es capturar la imagen en un buffer writer y luego escribir el buffer en un fichero como se hace normlamente en java. Vamos allá:

WritableImage snapshot = stage.getScene().snapshot(null);

Donde "stage.getScene()" es nuestra escena; pero que también podría ser un nodo.

WritableImage snapshot = node.snapshot(null,null);

Luego nos quedaría copiar nuestro WriteableImage a un File dentor de un try catch

File file = new File("test.png"); 
RenderedImage renderedImage = SwingFXUtils.fromFXImage(snapshot, null); ImageIO.write(renderedImage, "png", file);

Finalmente nos quedaría una función así:

public void snapShotJavaFx()
{
  WritableImage snapshot = scene.snapshot(null);
  try{
     File file = new File("test.png");
     RenderedImage renderedImage = SwingFXUtils.fromFXImage(snapshot, null);
     ImageIO.write(renderedImage, "png", file);
  catch(IOException ex){
     Logger.getLogger(TestJavaFX.class.getName()).log(Level.SEVERE, null, ex);
  }
}
Nos quedaría la ventana de JavaFX sin la barra superior de la ventana de windows. Espero les haya servido.



No hay comentarios:

Publicar un comentario