Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Fabriquer son propre studio photo

Lors d'un évènement particulier tel qu'un mariage, une soirée déguisée, etc, c'est toujours très amusant d'avoir un studio photo (aussi appelé photo booth ?). Mais si, vous savez, cet endroit un peu à l'écart où les invités peuvent aller se prendre en photo en faisant des grimaces, afin de laisser un bon souvenir.

J'ai voulu bricoler un truc semblable, avec la possibilité de déclencher la prise de la photo de la façon la plus simple possible : appui d'une touche sur un clavier, ou bien en enfonçant un bouton sur un joypad.

Voici donc la marche à suivre.

Matériel requis :

Installation du programme "potograph"
Tout d'abord, installez les dépendances sur le raspberry pi (ou autre ordinateur). Vous aurez besoin de pygame, de fwsebcam et/ou gphoto2 :

# apt-get install python-pygame fswebcam gphoto2



Ensuite, récupérez potograph à l'adresse suivante :

git clone http://git.yeuxdelibad.net/potograph


Pour lancer potograph, je vous conseille de le faire à partir du tty, mais il est tout à fait possible de le lancer normalement à partir d'une console.


Si c'est un appareil photo, remplacez “webcam” par “camera”.

Et après?
Normalement, une nouvelle fenêtre qui prend tout l'écran apparaît.
Il vous suffit désormais d'appuyer sur n'importe quel bouton pour prendre une photo et la voir s'afficher. Chouette hein?

après avoir appuyé sur échap, vous retrouver votre ordinateur tel qu'il est habituellement, et les photos dans le dossier à partir duquel vous avez lancé le programme.

Pour les longues soirées, prévoyez un grand espace de stockage sur votre disque! ☺

Allez, regardons Bobby se prendre en photo (la webcam utilisée est de mauvaise qualité…):

potograph from Thuban on Vimeo.

Idée tirée en partie d'ici :
http://www.instructables.com/id/Raspberry-Pi-photo-booth-controller/?ALLSTEPS

le 16/06/2015 à 12:06:33, Olivier a dit :

Ce serait cool si on pouvait trouver le fichier d'une NESS pour ensuite l'imprimer en 3D. J'ai regardé sur instructables et thingivers mais en vain... Par contre j'avais lu une actu il y a quelque temps sur un mec qui avait imprimé une gamme boy...

le 16/06/2015 à 12:09:58, Thuban a dit :

Salut Olivier,
Tu veux parler de la manette pour super nes?
C'est ça qui est utilisé dans l'exemple, mais n'importe quel autre périphérique (clavier, joystick...) qui a un bouton peut faire l'affaire en fait :)

le 06/09/2015 à 09:56:30, neopaulo a dit :

Bonjour,
N'étant vraiment pas un expert de linux, j'ai suivi pas à pas votre super tuto à partir d'un raspberry pi2. Quand j'essaye de lancer la commande "photographe.py webcam" j'obtiens l'erreur suivante : "photographe.py : command not found". Pourtant potograph est bien installé... Si j'essaye de le réinstaller, j'ai d'ailleurs un avertissement sur le fait que "potograph" existe déjà et que je répertoire n'est pas vide...

Auriez-vous une idée ?

En vous remerciant par avance :)

le 06/09/2015 à 10:03:50, Thuban a dit :

@neopaulo : Bonjour,
Alors, le fichier potographe.py récupéré, il faut le copier dans /usr/local/bin pour pouvoir lancer simplement la commande potograph.py.
Sinon, il faut préciser son chemin en entier, par exemple :
/home/neopaulo/potograph/potograph.py webcam

C'est vrai que je ne me suis pas étendu sur l'utilisation en ligne de commande.
N'hésite pas si tu as encore un souci :)

le 24/09/2015 à 18:02:24, jullover a dit :

Bonjour
déjà merci pour tout ça !

j'ai cependant un petit souci,
avec un appareil photo (pas une web cam) les photos prises sont placées dans le répertoire "root".
J'arrive à définir un répertoire cible avec un renommage des fichiers (date et heure)
cameraphoto="gphoto2 --capture-image-and-download --filename='../PHOTOS/%Y%m%d-%H%M%S.JPG' --force-overwrite"

mais lorsque il s'agit d'afficher l'image prise, le script s'arrête avec le message suivant en ligne de commande
OSError: [Errno 2] No such file or directory: '20150924-163747.JPG'

Pourtant je met bien le bon chemin d'accès pour afficher la dernière image
for f in os.listdir("../PHOTOS"):

En laissant tout dans le répertoire "root", ça fonctionne… (même avec le format date et heure)

je ne comprend pas
merci pour votre aide

le 24/09/2015 à 20:04:18, Thuban a dit :

@jullover : Bonjour.
Alors ça doit être tout bête. Tu peux me donner le fichier modifié en entier que je regarde?

Pourquoi c'est mis dans le dossier root d'ailleurs? Tu ne lances pas le script en tant que root, si?

le 25/09/2015 à 10:14:55, jullover a dit :

Merci de répondre si vite
si je lance en tant que root
pour le fichier, je n'ai encore rien modifié à part le nom de la photo (mais ça ne change pas grand chose)

le 25/09/2015 à 10:18:42, Thuban a dit :

@jullover : Alors non, il ne faut pas le lancer en tant que root. C'est d'ailleurs à éviter pour la plupart des programmes. C'est de là que vient le problème.
Pourquoi ne pas le lancer en tant que simple utilisateur? C'est un problème de droits? Si oui, lance la commande groups et vérifie que tu appartiens bien au groupe plugdev.

le 25/09/2015 à 10:59:49, jullover a dit :

j 'ai toujorus appris à faire comme ça
ce que je ne comprend pas c'est pourquoi je n'arrive pas à mettre un autre chemin que "root"
for f in os.listdir("."):
comment remplacer le "." par un chemin correct (rien ne fonctionne…)

le 25/09/2015 à 11:04:48, Thuban a dit :

Je me répète, il *ne faut pas* lancer le script en tant que root.

Et si, tu dois pouvoir mettre autre chose que le ".", par exemple "/root". Mais encore une fois, je le déconseille.

le 25/09/2015 à 11:19:22, jullover a dit :

ok
j'ai donc créé un identifiant
voilà la réponse lorsque je lance le script
identifiant@pi:~$ /home/identifiant/potograph/potograph.py camera
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

le 25/09/2015 à 11:27:27, Thuban a dit :

@jullover : Et il ne fonctionne pas du coup?
Je ne vois pas ce que alsa vient faire là dedans.

le 25/09/2015 à 11:32:11, jullover a dit :

non ça fonctionne pas
peut être une question de droits d'utilisateurs (je ne maitrise pas ça…)

le 25/09/2015 à 11:37:02, Thuban a dit :

@jullover : Sans aucun doute un problème de droits si cela fonctionne en tant que root.
Ajoute ton utilisateur aux groupes plugdev, video et audio avec :
useradd -G plugdev identifiant
useradd -G audio identifiant
useradd -G video identifiant

Puis reconnecte-toi avant de retester le script.

le 25/09/2015 à 11:46:05, jullover a dit :

merci, mais à chaque fois le message suivant
useradd : l'utilisateur « identifiant » existe déjà

peut être en ajoutant le groupe ?

le 25/09/2015 à 11:49:50, Thuban a dit :

@jullover : oui forcément, c'est de ma faute. C'est ceci qu'il faut :
usermod -a -G plugdev identifiant
usermod -a -G audio identifiant
usermod -a -G video identifiant

le 25/09/2015 à 12:01:26, jullover a dit :

ok, merci !
plus de ALSA
en revanche rien ne se lance (alors qu'en root si…)

le 25/09/2015 à 12:17:16, Thuban a dit :

@jullover : Ce n'est pas normal.
Que renvoie simplement cette commande :
gphoto2 --capture-image-and-download

le 25/09/2015 à 12:32:29, jullover a dit :

la photo se fait et ça renvoie ceci
identifiant@pi:~$ gphoto2 --capture-image-and-download
Le nouveau fichier est à l'emplacement /store_00010001/capt0000.jpg sur l'appareil
Enregistrement du fichier sous capt0000.jpg
Effacement du fichier /store_00010001/capt0000.jpg sur l'appareil
Suppression de 'capt0000.jpg' dans le dossier '/store_00010001'...

le 25/09/2015 à 12:39:38, Thuban a dit :

@jullover : Bon donc tout va bien.
Tu as remis le script sans changements.

Quand tu dis "rien ne se lance", c'est à dire? Que tapes-tu comme commande?

le 25/09/2015 à 12:45:22, jullover a dit :

je lance cette commande
identifiant@pi:~$ /home/identifiant/potograph/potograph.py camera

il ne se passe rien pdt 2-3 secondes puis il affiche ça
(le même message qu'en tant que root, mais en tant que route ça fonctionne entre temps…)

Traceback (most recent call last):
File "/home/identifiant/potograph/potograph.py", line 167, in <module>
main()
File "/home/identifiant/potograph/potograph.py", line 161, in main
potograph = interface(device)
File "/home/identifiant/potograph/potograph.py", line 65, in __init__
self.displayinfo = pygame.display.Info()
pygame.error: video system not initialized

le 25/09/2015 à 12:48:26, jullover a dit :

pardon, en tant que root (pas route) le message est le suivant après tout le processus (qui fonctionne)

root@pi:~# /home/identifiant/potograph/potograph.py camera
Photo!
Le nouveau fichier est à l'emplacement /store_00010001/capt0000.jpg sur l'appareil
Enregistrement du fichier sous 20150925-124912.JPG
Effacement du fichier /store_00010001/capt0000.jpg sur l'appareil
Suppression de 'capt0000.jpg' dans le dossier '/store_00010001'...
20150925-124912.JPG
À la prochaine!
Traceback (most recent call last):
File "/home/identifiant/potograph/potograph.py", line 167, in <module>
main()
File "/home/identifiant/potograph/potograph.py", line 162, in main
potograph.start()
File "/home/identifiant/potograph/potograph.py", line 93, in start
for event in pygame.event.get():

pygame.error: video system not initialized

le 25/09/2015 à 12:55:59, Thuban a dit :

Tu lances juste la commande. Tu appuies sur un bouton en particulier pour qu'il essaie de fermer potograph?
Affiche-t-il la photo?

le 25/09/2015 à 13:06:24, jullover a dit :

en root tout est ok (à part que je n'arrive pas à afficher la dernière image si jamais je décide de changer le répertoire (root))
le message envoyé est celui affiché quand j'appuie sur esc

en "identifiant" rien ne se passe, à part ce message (alors que je n'ai appuyé sur aucun bouton)

merci encore pour ton aide !

le 25/09/2015 à 13:08:25, Thuban a dit :

Je pourrais mieux t'aider en sachant quel environnement tu utilises. Debian?
C'est juste une histoire de droits à vrai dire, et selon la distribution, les utilisateurs n'ont pas tous les mêmes droits par défaut.

le 25/09/2015 à 13:22:38, jullover a dit :

Raspbian
et comme je te l'ai dit, je suis novice en matière d'utilisateur
en root tu conseilles pas, mais il me manquait pas grand chose
juste cette adresse que je n'arrive pas à changer pour récupérer la dernière image
for f in os.listdir("."):

le 25/09/2015 à 13:29:53, Thuban a dit :

Étonnant, j'ai fait mes tests sur une rasbpian quand j'ai écrit le script.

"." veut dire "le répertoire courant". C'est donc l'emplacement à partir d'où tu as lancé potograph. Tu peux le savoir avec la commande pwd

le 26/09/2015 à 09:04:58, jullover a dit :

ok, je reviens donc à ma question du début,
comment enregistrer les images, et surtout venir chercher la dernière images dans un autre répertoire ?
Merci 1000 fois

le 26/09/2015 à 10:25:28, Thuban a dit :

@jullover : N'y vois pas de la mauvaise volonté, mais je ne comprend pas bien ce que tu souhaites faire.
Si je comprend bien, tu souhaites changer le répertoire dans lequel les images sont enregistrées?

Rien de plus simple dans ce cas, et tu n'as pas à toucher au code en plus.

Tu te déplaces dans le dossier où tu souhaites avoir les images enregistrées :
cd /ton/dossier/à/images
Puis tu lances potograph à partir de ce dossier.

le 18/01/2016 à 10:41:22, Altris a dit :

Bonjour,

Désolé de relancer le sujet, mais j'aurais aimer savoir 2 choses :

1) Est-il possible de faire une prévisualisation de l'image avant de faire la photo ?
2) Est-il possible de changer le message qui est affiché à l'écran ?

Merci d'avance pour votre retour :)

le 18/01/2016 à 11:02:37, Thuban a dit :

@Altris : Bonjour
Pas désolé, il n'y a aucun problème :)

1) Alors non, on ne peut pas prévisualiser l'image, puisque l'image affiché provient justement de la photo réalisée par l'appareil. Cela est sans doute possible avec une webcap, mais des logiciels adaptés à cet utilisation existent et sont certainement plus efficaces (cheese par exemple).
2) Et bien sûr, oui, c'est possible de modifier le message affiché à l'écran. Il suffit de la changer dans le fichier directement :)

le 07/03/2016 à 13:23:05, Ran a dit :

Bonjour,

serait-il possible en appuyant sur une touche du clavier d'envoyer la photo par mail ?
Merci d'avance

le 07/03/2016 à 14:01:00, Thuban a dit :

@Ran : Oui c'est possible :)
Tu peux faire en sorte que cela déclence la commande "mail" avec les bons arguments, voire utiliser le module smtp de python :)

le 07/03/2016 à 18:57:04, Ran a dit :

@Thuban :

merci pour cette réponse mais je ne suis pas un crack en Python !
Quelles lignes ajouter dans le script ou bien quels arguments ?
merci encore.

le 07/03/2016 à 21:08:04, Thuban a dit :

@Ran : ok, donc une méthode simple que je te propose, qui s'appuie là dessus : https://doc.ubuntu-fr.org/tutoriel/comment_envoyer_un_mail_par_smtp_en_ligne_de_commande (on pourrait faire mieux mais bon) :
1. Installer msmtp
2. Configurer msmtp comme indiqué ici
Ajouter cette ligne après la ligne 33 , dans la fonction snap, juste avant le return(ret)

os.system('uuencode {} | msmtp adresse@mail.com'.format(ret))

Cela nécessite un peu de configuration, mais devrait bien fonctionner :)

le 08/03/2016 à 10:05:09, Ran a dit :

@Thuban :
bonjour,
ça à l'air super mais un peu compliqué à mettre en place pour moi !
En résumé,
1 - j'installe pygame, fwsebcam et gphoto2.
2 - j'installe potograph
3 - comment lancer potograph avec une seule touche du clavier, par-exemple f2 ?
4 - comment prendre une photo avec une seule touche du clavier, par-exemple f3 (car vous dites qu'il vous suffit désormais d'appuyer sur n'importe quel bouton pour prendre une photo) ?
5 - la photo s'affiche à l'écran
6 - comment ouvrir l'application de messagerie avec une seule touche, par-exemple f4 ?
7 - l'utilisateur tape son adresse
8 - comment envoyer le message en tapant sur une seule touche, par-exemple f5 ?
9 - comment faire pour que potograph se lance automatiquement après l'envoi du mail ?

Je sais, ça fait beaucoup, mais c'est exactement ce que je souhaite réaliser.
Mille mercis d'avance !

le 10/03/2016 à 11:12:22, Thuban a dit :

@Ran : Bonjour,
alors, je n'ai actuellement pas le temps de modifier le programme sur mesure. Cependant, tu peux ajouter des raccourcis très facilement avec ton environnement de bureau (gnome, kde, xfce, ou openbox...). Je t'invite à lire la documentation de ces derniers pour savoir comment faire (souvent dans la configuration du clavier). Cela te permettra de lancer potograph et faire une bonne partie de ce que tu souhaites.
Je garde tes idées dans un coin pour l'améliorer à l'avenir :)

le 11/03/2016 à 17:34:20, Ran a dit :

@Thuban :
bonjour,
c'est sympa ! Merci pour tes conseils.

le 15/03/2016 à 14:43:44, Hard-Heavy a dit :

Bonjour,

Pour moi, potograph ne garde que la dernière image prise...J'ai les msg d'erreur suivant dans le terminal:
Corrupt JPEG data: 1 extraneous bytes before marker 0xd2
Corrupt JPEG data: 1 extraneous bytes before marker 0xd7


Une idée?

J'arrive pas non plus à modifier le texte afficher à l'écran car au moment d'enregistrer via l'éduteur de texte, je ne semble pas avoir les droits en écritures dans le dossier potograph.

Merci d'avance pour ton aide ;)

le 15/03/2016 à 21:04:22, Thuban a dit :

@Hard-Heavy : Bonjour,
Les messages d'erreurs ne viennent pas de potograph. Vérifie la capture d'images avec la webcam/l'appareil photo (de quoi s'agit il?)

Pour les droits, c'est ton ordi, donc à toi de les changer :)

chown -R ton_pseudo:ton_pseudo /chemin/vers/le/dossier/potograph

le 17/03/2016 à 18:03:14, Hard-Heavy a dit :

OK, merci pour les droits en écriture :)

Ma webcam est une logitech C310.
Ce qui est étrange, c'est qu'en exécutant photograph.py (mais l'image n'est pas cadrée) , ça marche sans problème; mais avec potograph.py, le problème intervient.

le 17/03/2016 à 19:03:16, Thuban a dit :

@Hard-Heavy : je m'aperçois que j'avais réalisé des modifications depuis longtemps, que je n'ai jamais envoyées sur mon dépôt.
Tu peux réessayer désormais :)

le 30/04/2016 à 15:23:59, Altris a dit :

J'aurais encore une petite question, comment peut-on agrandir la taille de l'image affichée lors du résultat ?
Celle-ci est centrée au milieu de l'écran et est entourée de noir.

Merci d'avance de votre aide :).

Altris

le 30/04/2016 à 20:39:19, Thuban a dit :

@Altris : Facile pour le coup.
En haut du fichier, tu as ceci :
size = w, h = 640, 480
Il suffit de remplacer les dimensions "640, 480" par celles souhaitées ;)

le 11/06/2016 à 09:50:53, Altris a dit :

Désolé de déranger une nouvelle fois.

Lorsque j'essaie à nouveau de refaire un git clone sur l'adresse souhaitée, il me dit que le dossier n'existe pas :

git clone http://git.yeuxdelibad.net.net/potograph
Clonage dans 'potograph'...
fatal : repository 'http://git.yeuxdelibad.net/potograph/' not found

Pouvez vous m'aider ? Désolé de vous déranger :(

le 12/06/2016 à 18:43:09, thuban a dit :

Pas de soucis.
Le plus simple serait de récupérer l'archive directement en cliquant sur ce lien : http://git.yeuxdelibad.net/potograph.tgz

le 08/07/2016 à 10:29:41, Ben a dit :

Bonjour, j'ai un soucis avec le programme. Lorsque je prend une photo, sur le terminal le message "Unable to find a compatible palette format." s'affiche.
Je ne sais pas si le problème vient de ma webcam ou autre.
Merci de votre retour

le 08/07/2016 à 19:38:30, thuban a dit :

@Ben : Bonjour,
Ce message fait penser à une incompatibilité de la webcam avec le programme utilisé pour récupérer l'image. As-tu essayé la webcam avec un autre programme pour être sûr qu'elle fonctionne?

le 17/03/2017 à 11:59:59, la forge a dit :

Bonjour,
Premièrement merci beaucoup pour le code. Il est vraiment chouette le concept surtout pour les soirées.:=)

De mon côté j'ai un chtit souci: Alors je lance l'appli de mon bureau depuis le terminal avec la raspicam V2.1 , l'appli se lance tout fonctionne à merveille quand j'appuie sur les boutons. L'impression affiche impression quand j'appuie sur start, mais:

1) Aucune des photos prise n'est enregistrée donc pas de photo dans mon dossier. (c'est vraiment génant)

Ensuite:
2) j'ai un drôle de message d'erreur lorsque je quitte l'application:
*** Erreur ***
Aucun appareil n'a pu être détecté
*** Erreur (-105 : « Modèle inconnu ») ***

apparement gpphoto 2 ne reconnaît pas la raspicam.

(si je comprends ci dessous pour la partie impression effectivement aucune imprimante est branchée)

lpr: Error - scheduler not responding.

La caméra est pourtant bien branchée pusique les photos sont affichées à l'écran quand le log est en route.

Any idea pour ce problème?
TOute salvation serait la bienvenue.

Bonne journée.

le 17/03/2017 à 13:39:18, thuban a dit :

@la forge : Bonjour,
Il faut effectivement vérifier que la raspicam est supportée. Ce qu'il te faut, c'est la commande adéquate pour prendre des photos avec.
Par défaut, c'est avec gphoto2 qui lance :

gphoto2 --capture-image-and-download

Puisque ça ne semble pas fonctionner, il faut trouver la commande équivalente pour la raspicam. Je n'en ai pas donc ne peut pas tester, mais après une rapide recherche on trouve

raspistill -o myimage.jpg

Une fois la commande obtenue, modifie le code de potograph à la fonction "camerasnap" et remplace la commande ci-dessus par celle qui fonctionne.

On verra ensuite pour l'impression. Il sera nécessaire d'installer l'imprimante déjà ;)

le 18/03/2017 à 09:12:12, la forge a dit :

Je te remercie chaudement pour la diligence de ta réponse.

J'ai donc remplacé la ligne camerasnap():
cameraphoto="gphoto2 --capture-image-and-download"
par
camerasnap():
cameraphoto="raspistill -o myimage.jpg"

La reconnaissance photo fonctionne parfaitement, je n'ai plus d'error 105 le problème venait bien de là et de gphoto2 qui ne semble pas supporter raspicaméra.

Par contre The Big Problem: il n'enregistre qu'une seule image prise dans le dossier home/pi
La seule image enregistré est la dernière prise. J'ai donc du zappé un truc?

Merci encore pour ton aide précieuse.

Bonne journée.

le 18/03/2017 à 09:19:23, thuban a dit :

@la forge : Haha, oui, il écrase toujours l'image précédente pour lui donner le nom "myimage.jpg". On peut filouter en mettant la date par exemple :


 cameraphoto="raspistill -o $(date +%Y-%m-%d-%H-%M-%S).jpg"
 

le 19/03/2017 à 13:48:40, la forge a dit :

Le top!
ça fonctionne du tonnerre de Brest sous le soleil:=)

Je te remercie franchement de ton aimabilité et de ta disponibilité, ça m'a vraiment donné le goût d'apprendre le langage python. Venant d'un univers carément opposé, ça fait du bien de reprendre le controle numérique en main. Si par ailleurs tu as de la potasse à me conseiller sur la programmation et la proctection des données?

AU fait penses tu qu'il serait possible de changer le bouton start par un bouton GPIO? Je le verrai bien branché en mode arcade bouton ton code et avec les dernières photos prises en fond d'écrans diffusées sur un projo. Si tu as des pistes à me donner, avec des bases vers lesquelles me diriger... ça pourrait être un bon debut de programmation?

Merci encore c'est carément top.

le 19/03/2017 à 13:59:19, thuban a dit :

@la forge : Super :)
Programmation et protection des données sont deux trucs très différents...
Pour la programmation, je ne sais pas programmer. Je ne fais que lire le code des autres et au fur et à mesure, on apprend énormément. Tu peux regarder ça pour python : https://www.python.org/about/gettingstarted/ . Honnêtement, il y a pleins de trucs en ligne pour ce langage, tu devrais trouver ton bonheur ;)

Pour la protection des données, il faut chiffrer, et surtout, héberger toi-même tes données (mails, ...). j'en parle souvent ici.

Pour changer le bouton, rien de plus simple : dans la partie du code où les évènements sont écoutés, tu rajoutes un ligne qui t'affiche le nom du bouton pressé. Comme ça, tu remplaces le JOYBUTTONDOWN par ce qui va bien. Il y a une lib spéciale pour le RPi aussi avec GPIO, mais je ne m'en suis pas servi depuis trèèèès longtemps, désolé :s .

Amuse-toi bien, et n'hésite pas si tu bloques un de ces jours ;)

le 21/03/2017 à 13:08:12, la forge a dit :

Merci pour les infos.
Je vais jouer la carte sécurité ;-).

Un dernier truc me taraude.
Lorsque je lance l'application, je me retrouve en plein écran
mais une ligne bleu d'information affiche le nom du programme intitulé "pygame window".
J'ai donc potassé un peu comment masquer les informations de la fenêtre pygame sur internet.

J'ai cherché dans le log les lignes qui y correspondent à partir d'init (self, device).

Mais rien à y faire je me retrouve avec un self... quelque chose qui n'accepte pas l'execution en fullscreen sans barre d'information.
Même en essayant de tricher avec le début de log en insérant la résolution de mon écran. Le script bleu apparaît toujours.

Alors j'ai décidé d'afficher le log en premier plan, puis de masquer la barre avec un clic droit et ne pas décorer. Cette fois-ci ça marche, manque de bol un léger décalage sur la droite apparaît impossible de jouer avec la fenêtre pour un plein écran.

Y a t'il une autre solution possible pour lancer le programme directement en plein écran sans barre d'information?

Merci pour les précieuses informations.

le 21/03/2017 à 14:20:51, thuban a dit :

@la forge : La gestion des fenêtres devrait être une tâche réservée au gestionnaire de fenêtres. Ma réponse va donc dépendre de celui que tu utilises. Ne t'embête pas avec le code, tu vas t'arracher les cheveux pour ça.
Si tu utilises openbox ou fluxbox c'est tout bête. Bref, j'attends de savoir ce que tu as comme WM ou bureau pour t'indiquer la marche à suivre.

le 22/03/2017 à 14:21:29, la forge a dit :

Alors là, tu me pose réellement une colle.

M'arracher les cheveux, c'est déjà fait, maintenant que j'y suis... :-). ça ne fait pas de mal.

J'ai le bureau normal Raspbian Pixel.
Je lance le code sur la console directement depuis le bureau en tapant sudo python / pi/home/le chemin du log.. La fenêtre gère le reste automatiquement.
Je ne connais ni openbox, ni fluxbox pour l'instant.

le 22/03/2017 à 16:00:21, thuban a dit :

@la forge : Ah zut, et je ne connais pas ce système du coup.
Tu peux demander sur le forum de la distribution quel est le gestionnaire de fenêtres ?

le 22/03/2017 à 19:14:37, la forge a dit :

Je vais essayer de regarder ça de mon côté et je te tiens au jus! ;-).

le 22/03/2017 à 22:53:46, la forge a dit :

Bonsoir ,

Le tableau de bord du bureau de Pixel c'est LXPanel 0.7.2. d'origine. Apparemment, il est serait possible d'ajouter openbox en parallèle... J'ai essayé de switcher un peu LXpanel et Pixels mais sur la colle, je reste impassible.

le 23/03/2017 à 21:24:46, thuban a dit :

Si c'est LXPanel, c'est peut-être LXDE et donc openbox comme gestionnaire de fenêtres ?

le 26/03/2017 à 14:40:52, la forge a dit :

Alors en me renseignant bien il y a une ligne de commande à entrer dans la console pour connaître le gestionnaire de session
Donc pour ceux qui sont dans la même galère que moi tapez dans LX terminal:

pi@raspberrypi ~ $ readlink -e /usr/bin/x-session-manager
/usr/bin/startlxde

Une autre pour ensuite connaître le gestionnaire de fenêtres:

pi@raspberrypi ~ $ readlink -e /usr/bin/x-window-manager
/usr/bin/openbox

(A savoir lorsque j'ai rentré ces lignes de commande mon bureau s'est transformé, les icônes sont un peu plus classe).

Donc pour confirmer je suis bien sous openbox comme gestionnaire de fenêtre.
Ce que je ne comprend pas, c'est que lorsque je lance n'importe quel application elle s'exécute automatiquement en plein écran. Sauf notre Potograph. J'aimerai comprendre pourquoi.

Merci encore.

le 26/03/2017 à 14:48:10, thuban a dit :

Ah, pour Openbsd, mettre les fenêtres en plen écran et sans décorations c'est fastoche : http://3hg.toile-libre.org/noDE/openbox/openbox.pdf (page 9 (applications))

le 30/03/2017 à 19:06:18, guillaumeper a dit :

Bonjour ^^' la qualité c'est que la caméra ou c'est aussi un paramètre à changer dans potograph.py ?

Car je connais le rendu de ma caméra sur un windows, et sur linux elle rend un truc genre comme la webcam pour gameboys ^^'

quelque chose de sombre et dégelasse :/

le 30/03/2017 à 21:07:29, guillaumeper a dit :

Ah et aussi ^^' (puisque je suis absolument nul en bricolage électronique).

J'aimerai faire un flash externe histoire d'avoir la pèche sur les photo,
que me conseil tu comme outil, et comment faire pour que ça fonctionne en même temps que l'éclairage écran svp ? merci :)

le 31/03/2017 à 05:52:46, thuban a dit :

Salut,
Là, je dois admettre que ça dépasse mes compétences. J'imagine qu'un arduino ferait ça mieux que le rasperry pi, mais comment ?
Bon courage ^^

le 09/06/2017 à 19:49:29, Dave a dit :

Allo!

Je tente de réussir l'installation du logiciel et malgré la simplicité de ton tutoriel, je n'y arrive pas... D'abord, impossible de réussir la commande "git clone http://dev.yeuxdelibad.net/potograph" ... D'ailleurs, il y a une petite erreur dans ton tuto "http://git" au lieu de "http://dev". Donc, lorsque je fais la commande, j'ai le message "File not found"... Je me suis dit pourquoi ne pas télécharger directement les fichiers... Impossible de télécharger directement dans /usr/local/bin... Finalement, je télécharge le fichier dans le dossier "Downloads", déplace le fichier avec la commande "sudo mv". Un fois le fichier en place, je tente l’exécution dans terminal "potograph.py webcam" et le message "Permission Denied" m'apparait... Je tourne en rond, je ne sais pas quoi faire...

le 09/06/2017 à 19:50:43, Dave a dit :

@Dave : En passant, merci de partager ton travail!

le 09/06/2017 à 20:05:15, Dave a dit :

@Dave : J'ai modifié les droits de /usr/local/bin... maintenant je passe à une autre étape...

Traceback (most recent call last):
File "/usr/local/bin/potograph.py", line 197, in <module>
main()
File "/usr/local/bin/potograph.py", line 191, in main
potograph = interface(device)
File "/usr/local/bin/potograph.py", line 70, in __init__
self.displayinfo = pygame.display.Info()
pygame.error: video system not initialized

le 09/06/2017 à 20:12:18, Dave a dit :

Finalement, le logiciel démarre... Il semble prendre une photo, mais ne l'affiche pas... et reste sur Photo! Il y a un message d'erreur *open: Permission Denied...

le 09/06/2017 à 20:30:38, Dave a dit :

Tu enregistres les photos à quel endroit par défaut?

le 10/06/2017 à 12:56:00, thuban a dit :

Bonjour,
oui l'article date, l'emplacement du code a changé comme tu as pu t'en apercevoir par toi même et dans les commentaires.
Par défaut, les photos sont enregistrées dans le dossier à partir duquel le programme est lancé.

Il faudrait le message d'erreur sur le "Permission Denied" en entier. C'est sans doute une bête histoire de droits d lecture de fichiers.

le 10/06/2017 à 13:00:35, thuban a dit :

Cet article n'est plus à jour. En cas de soucis, merci de me contacter directement par mail.