top of page

PiBooth

V. Module 3 : Affichage de la cam avec

                                                compte à rebours

13/03/2021

     Introduction :

     Ici je veux :


     Afficher le retour camera en effet miroir, pour un positionnement plus facile.
     Par dessus cette image un compte à rebours s'affiche

 

     Tout simplement avant la prise de vu pour avoir le temps de se placer correctement.

     Nous allons ajouter des entrées dans le fichier config.ini

config.ini                                                                                                                                                                                         

...

largeur_compte=800
hauteur_compte=600
taille_compte=200
texte_compte="5"
couleur_texte_compte=[255,255,255]

  • Le programme de base

test_camera.py                                                                                                                                                                              

#coding:utf-8

# Les librairies
import sys
import pygame
import pygame.camera
import time

# les Constantes importées ------------------------------------------------------------------------------------------------
dico={}
fichier=open('config.ini','r')
lignes=fichier.readlines()
for o in lignes:
   sp=o.split('=')
   dico[sp[0]]=sp[1]
for i in dico:
   exec(i+'='+str(dico[i]))

#les constantes
pos_texte_compte=[(largeur_compte/2)-(taille_compte/10),(hauteur_compte/2)-(taille_compte/4)]
pos_texte_compte_fin=[0,(hauteur_compte/2)-(taille_compte/4)]


# Les variables
texte_compte_aff=texte_compte

# Initialisation de pygame et de la camera
pygame.init()
pygame.camera.init()


# definitione de la taille de la surface et de l'affichage de la camera
windows_surface = pygame.display.set_mode((largeur_ecran,hauteur_ecran),0)
cam_list = pygame.camera.list_cameras()
cam = pygame.camera.Camera(cam_list[0],(largeur_compte,hauteur_compte))
cam.start()

# Fonte du compte a rebour, la meme que celle de la page d'accueil
acceuil_fonte = pygame.font.Font(nom_fonte_acc, taille_compte)    # Argument (nom de la fonte, taille)



launched = True
while launched :
   for event in pygame.event.get() :
       if event.type == pygame.QUIT :
           launched = False
       image1 = cam.get_image()
       image1 = pygame.transform.scale(image1,(largeur_compte-20,hauteur_compte-20))
       windows_surface.blit(image1,(10,10))
       pygame.display.update()

# corp du programme ------------------------------------------------------------------------------------------------------------

# Texte a afficher
       if texte_compte_aff == 0:
           texte_cpt="Souriez"
       else:
           texte_cpt=str(texte_compte_aff)

# Mise en page du texte a afficher
       texte_cpt = acceuil_fonte.render(texte_cpt, True, couleur_texte_compte) # argument (texte, lissage, couleur du texte, couleur de fond optionnel)


# Affichage du texte
       if texte_compte_aff == 0:
           windows_surface.blit(texte_cpt, pos_texte_compte_fin )
       else:
           windows_surface.blit(texte_cpt, pos_texte_compte )



# mise a jour de l affichage
       pygame.display.flip()

# Compte a rebour
       texte_compte_aff -=1

       time.sleep(1)

 

J'ai réussi a faire le compte a rebour, mais celui ci fait que l'affichage de la camera est rafraichi environ toutes les 4s alors que sans le compte, elle est relativement fluide.
 

 

     Pour ceux qui ne l'aurais pas remarqué, sous la date en haut j'ai mis les fichiers finaux de cette partie.

bottom of page