O PyGame é uma coleção de módulos Python para a criação de jogos baseados em SDL.
Sendo em Python, ele é portável e funciona em praticamente qualquer plataforma ou sistema.
Para instalar o PyGame execute o comando:
1
pip install pygame
Provavelmente será necessário instalar uma variedade de pacotes no seu sistema, confira a documentação de compilação para obter a lista completa, ou tente instalar o pacote python3-pygame, caso esteja disponível em sua distro, que ele virá com todas as dependências necessárias.
No exemplo de hoje vou mostrar como utilizar o PyGame e uma webcam para capturar imagens em tempo real. O módulo de câmera é experimental e suporta apenas Linux e câmeras v4l2 no momento.
Abaixo você pode verificar o código completo com alguns comentários:
importpygameimportpygame.camerafromdatetimeimportdatetimefrompygame.localsimport*FPS=30classApp(object):def__init__(self,size=None):# Iniciando o Pygame.pygame.init()# Iniciando o módulo de som.pygame.mixer.init()# Iniciando o módulo de câmera.pygame.camera.init()# Iniciando o módulo de fonte.pygame.font.init()pygame.display.set_caption("PyCam")self.size=sizeor(640,480)# Cria a tela principal.self.display=pygame.display.set_mode(self.size,0)# Relógio para controlar o FPS.self.clock=pygame.time.Clock()def__del__(self):# Liberando os módulos.pygame.font.quit()pygame.camera.quit()pygame.mixer.quit()pygame.quit()defmain(self):running=True# Recuperar a lista de câmeras disponíveis.clist=pygame.camera.list_cameras()# Lista vazia?ifnotclist:raiseValueError("Nenhuma camera encontrada.")# Define a câmera a ser usada e a resolução.cam=pygame.camera.Camera(clist[0],self.size)# Iniciando a Webcam.cam.start()# Enquanto o usuário não fechar a tela ou apertar ESC,# ficará exibindo imagens da câmera em tempo real.whilerunning:events=pygame.event.get()foreinevents:ife.type==QUITor(e.type==KEYDOWNande.key==K_ESCAPE):running=Falseif(e.type==KEYDOWNande.key==K_RETURN):# Salva a imagem em um arquivo em disco ao apertar a tecla ENTER.img=cam.get_image()filename=datetime.strftime(datetime.now(),"capture_%d_%m_%Y_%H_%m_%S.png")pygame.image.save(img,filename)print(f"Imagem salva em: {filename}")try:# Toca um som de captura, simulando uma câmera.pygame.mixer.Sound("camera-shutter-click.ogg").play()exceptExceptionase:print(e)# Verifica se a câmera está pronta para uso.ifcam.query_image():# Captura uma imagem e joga na tela.snapshot=cam.get_image()self.display.blit(snapshot,(0,0))pygame.display.flip()self.clock.tick(FPS)# Liberando a Webcam.cam.stop()if__name__=="__main__":A=App()A.main()
Atalhos disponíveis:
Enter — uma imagem será capturada e salva no local de execução do aplicativo
Esc — encerra a aplicação