DĂ©pendances Maven JavaFX et Webcam sarxos
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>19</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-swing -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
<version>19</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.sarxos/webcam-capture -->
<dependency>
<groupId>com.github.sarxos</groupId>
<artifactId>webcam-capture</artifactId>
<version>0.3.12</version>
</dependency>
</dependencies>
Webcam panel avec JavaFX Swing
import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamPanel;
import com.github.sarxos.webcam.WebcamResolution;
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AppWebcamPanel extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) {
// La webcam par défaut
var webcam = Webcam.getDefault();
// La taille originale de la webcam
webcam.setViewSize(WebcamResolution.VGA.getSize());
// Le panneau contenant la webcam
var panel = new WebcamPanel(webcam);
panel.setImageSizeDisplayed(true);
// Le noeud swing pour afficher un élément swing dans un noeud JavaFX
var swingNode = new SwingNode();
swingNode.setContent(panel);
var scene = new Scene(new StackPane(swingNode), 640, 480);
stage.setScene(scene);
// Ferme l'application quand la fenêtre est fermée
stage.setOnCloseRequest((event) -> {
System.exit(0);
});
stage.show();
}
}
Webcam JavaFX Image View
import java.io.IOException;
import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamResolution;
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AppWebcamImageView extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) throws IOException {
// La webcam par défaut
var webcam = Webcam.getDefault();
// La taille originale de la webcam
webcam.setViewSize(WebcamResolution.VGA.getSize());
// L'afficheur d'image
var imageView = new ImageView();
// L'élément racine
var root = new StackPane(imageView);
// Ouvre la webcam
webcam.open();
var task = new Task < Void > () {
@Override
protected Void call() throws Exception {
boolean camStart = true;
while (camStart) {
// Conversion de l'image en image JavaFX
var image = SwingFXUtils.toFXImage(webcam.getImage(), null);
// Affichage de l'image
imageView.setImage(image);
}
return null;
}
};
// Tâche pour afficher l'image
var thread = new Thread(task);
thread.setDaemon(true); // Le thread est arrêté si l'application est quittée
thread.start();
var scene = new Scene(root, 640, 480);
stage.setScene(scene);
stage.show();
}
}
Commentaires
Enregistrer un commentaire