Bonjour,
bonjour,
voila je me présente kévin 31 ans de chalons en champagne, je vais bientôt me marier et je voudrais construire un photobooth avec un raspberri pi 2;
J’ai cherché sur pas mal de site j’ai trouve un programme fonctionnel mais je voudrais le modifier pour le rendre plus joli et c’est la que j’ai besoin d’aide.
le programme fonctionne:
ecran noir
j’appuie sur mon bouton connecté sur le gpio
j’ai un décompte 3;2;1
message souriez
il prend une photo l 'affiche et inscrit « et voila »
je peu reprendre une photo en pressant de nouveau le bouton
si je reste appuye sur le bouton je sors du programme
en fait ce que je voudrais c’est l’embellir en mettant une image de fond a la place de mon ecran noir du debut, une image sympa que je ferais sous photoshop avec en plus ecrit " appuyé sur le bouton pour prendre une photo"
pareil pour le décompte avec une image de fond pour que je puisse avoir quelque chose de plus joli que mes 3;2;1 en blanc disgracieux…
pour l’affichage de la photo pareil je voudrais faire un truc sous photoshop type photomaton avec ma photo qui s’affiche dedans (un cadre en gros)
et je voudrais qu il rebascule sur le premier ecran ensuite : appuye sur un bouton pour prendre une photo.
Voila je ne connais pas le python donc je suis un peu bloqué.
Si une âme charitable peux me filer un coup de main.
Merci d’avance;
code :
#!/usr/bin/env python2.7
– coding: utf-8 -
import RPi.GPIO as GPIO
import time
from datetime import datetime
from PIL import Image
import pygame
from pygame.locals import *
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
pygame.init()
screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
width, height = screen.get_size()
def takepic(imageName): #prend une photo (note: il faut selectionner la ligne qui correspond à votre installation en enlevant le premier # )
command = « sudo raspistill -t 1000 -w 960 -h 720 -o « + imageName + » -q 80 » #prend une photo
command = « sudo raspistill -t 1000 -w 960 -h 720 -o « + imageName + » -rot 90 -q 80 » #prend une photo et la tourne de 90°
command = « sudo raspistill -t 1000 -w 960 -h 720 -o « + imageName + » -rot 180 -q 80 » #prend une photo et la tourne de 180°
command = « sudo raspistill -t 1000 -w 960 -h 720 -o « + imageName + » -rot 270 -q 80 » #prend une photo et la tourne de 270°
os.system(command)
def loadpic(imageName): # affiche imagename
print("loading image: " + imageName)
background = pygame.image.load(imageName);
background.convert_alpha()
background = pygame.transform.scale(background,(width,height))
screen.blit(background,(0,0),(0,0,width,height))
pygame.display.flip()
def minuterie():
writemessage(" 3")
time.sleep(1)
writemessage(" 2")
time.sleep(1)
writemessage(" 1")
time.sleep(1)
writemessage(« souriez »)
def writemessage(message): # pour pouvoir afficher des messages sur un font noir
screen.fill(pygame.Color(0,0,0))
font = pygame.font.SysFont(« verdana », 250, bold=1)
textsurface = font.render(message, 1, pygame.Color(255,255,255))
screen.blit(textsurface,(35,40))
pygame.display.update()
def writemessagetransparent(message): # pour pouvoir afficher des messages en conservant le font
font = pygame.font.SysFont(« verdana », 50, bold=1)
textsurface = font.render(message, 1, pygame.Color(255,255,255))
screen.blit(textsurface,(35,40))
pygame.display.update()
if (os.path.isdir("/home/pi/Desktop/photos") == False): # si le dossier pour stocker les photos n’existe pas
os.mkdir("/home/pi/Desktop/photos") # alors on crée le dossier (sur le bureau)
os.chmod("/home/pi/Desktop/photos",0o777) # et on change les droits pour pouvoir effacer des photos
while True : #boucle jusqu’a interruption
try:
print « \n attente boucle »
#on attend que le bouton soit pressé
GPIO.wait_for_edge(18, GPIO.FALLING)
# on a appuyé sur le bouton...
#on lance le decompte
minuterie()
#on genere le nom de la photo avec heure_min_sec
date_today = datetime.now()
nom_image = date_today.strftime('%d_%m_%H_%M_%S')
#on prend la photo
chemin_photo = '/home/pi/Desktop/photos/'+nom_image+'.jpeg'
takepic(chemin_photo) #on prend la photo
#on affiche la photo
loadpic(chemin_photo)
#on affiche un message
writemessagetransparent("et voila...")
if (GPIO.input(18) == 0): #si le bouton est encore enfoncé (sont etat sera 0)
print("bouton appuye, je dois sortir")
break # alors on sort du while
except KeyboardInterrupt:
print ‹ sortie du programme! ›
raise
GPIO.cleanup() # reinitialisation GPIO lors d’une sortie normale