Your mirror just fell off the wall and broke into a thousand pieces — but you need a mirror to shave your beard off or add some makeup! You only have 15 minutes left before catching the bus to work. So what can you do?
Dans ce tutoriel, nous allons faire un programme qui va vous permettre d'utiliser votre webcam comme miroir. Vous apprendrez comment :
créer une application GTK+,
accéder à votre webcam en utilisant GStreamer et intégrer le résultat dans une fenêtre,
récupérer des photos de votre webcam,
Vous avez besoin de ce qui suit pour pouvoir suivre ce tutoriel :
l'installation du paquet Anjuta IDE,
l'installation des paquets GTK, GStreamer et d'un compilateur Vala,
des connaissances de base d'un langage de programmation d'objets.
Avant de commencer à programmer, vous devez ouvrir un nouveau projet dans Anjuta. Ceci crée tous les fichiers qui vous sont nécessaires pour construire et exécuter votre programme plus tard. C'est aussi utile pour tout regrouper en un seul endroit.
Lancez Anjuta et cliquez sur
Choose
Désactivez
Assurez-vous que
Cliquez sur
Le programme charge et affiche une fenêtre (vide). Vous trouverez plus de détails ci-dessous ; passez cette liste si vous comprenez les bases :
Les deux lignes using
importent des espaces de noms que nous n'aurons plus à nommer explicitement.
Le constructeur de la classe principale Main
crée une nouvelle fenêtre et définit son titre. Ensuite, la fenêtre est affichée et un signal permettant de quitter l'application est connecté à la fermeture de la fenêtre. Plus d'informations sur les signaux sont données plus tard.
La fonction statique main
est exécutée par défaut quand vous lancez une application Vala. Elle appelle d'autres fonctions qui créent la classe « Main », initialise et ensuite exécute l'application. La fonction Gtk.Main
démarre la boucle principale GTK, qui lance l'interface utilisateur et commence à écouter les événements (comme des clics de souris ou des appuis sur des touches).
Le programme est prêt à être utilisé, donc vous pouvez le compiler en cliquant sur
Pour configurer le répertoire de compilation, modifiez la
L'architecture multimédia de GStreamer sait gérer les vidéos en provenance de webcams. Ajoutons GStreamer à notre application et nous pouvons ainsi accéder au flux vidéo.
Enlevons d'abord la fenêtre créée précédemment, car GStreamer va gérer l'affichage de l'image à l'écran.
Créons maintenant un élément GStreamer qui va accéder à notre webcam. Nous utilisons l'élément « Camerabin », qui est un élément caméra tout-en-un et qui sait faire des photos, des vidéos, appliquer des effets et beaucoup plus encore. Parfait dans notre cas ! Avec this.camerabin.set_state (Gst.State.PLAYING)
nous disons au pipeline GStreamer, que nous venons de créer, de commencer la lecture. Facile, non ?
Of course it is also possible to integrate the video more tightly into other windows but that is an advanced topic that includes some details of the X Window System we will omit here.
Compilez et exécutez le programme à nouveau. Vous obtenez finalement deux fenêtres. À l'étape suivante, nous allons intégrer la vidéo dans la fenêtre GTK+.
Si vous rencontrez des difficultés avec ce tutoriel, comparez votre programme à ce programme de référence. Il existe aussi une implémentation plus complète qui intègre la fenêtre à une fenêtre standard Gtk, mais qui nécessite des techniques avancées ainsi que l'ajout de boutons pour lire/arrêter l'image.
Pour en savoir plus à propos de la programmation en langage Vala, consultez le manuel Vala.
Ça y est ; vous avez réussi à créer une application fonctionnelle pour webcam en 15 minutes. Maintenant, vous pouvez vous raser ou maquiller votre joli visage avant de passer une belle journée sur votre lieu de travail, où vous allez pouvoir épater vos amis et collègues avec une application géniale faite en 15 minutes.