package fr.ronanlefichant.screenshot;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) {
Label label = new Label("Label - Capture d'écran");
// La scène à capturer
Scene scene = new Scene(new StackPane(label), 640, 480);
// L'image avec sa taille (taille de la scène)
WritableImage writableImage = new WritableImage(640, 480);
// Capture d'écran
scene.snapshot(writableImage);
// Le fichier où enregistrer l'image
File imageFile = new File("screenshot.png");
// Conversion d'une image JavaFX vers BufferedImage
BufferedImage bufferedImage = SwingFXUtils.fromFXImage(writableImage, null);
try {
// Enregistrement de l'image dans le fichier
ImageIO.write(bufferedImage, "png", imageFile);
} catch (Exception e) {
e.printStackTrace();
}
stage.setScene(scene);
stage.show();
}
}
Commentaires
Enregistrer un commentaire