#!/usr/bin/env python3 """Test liveview avec Pygame. Lance: python3 scripts/test_pygame.py""" import time import io import gphoto2 as gp import pygame cam = gp.Camera() cam.init() print("Camera connectee") pygame.init() screen = pygame.display.set_mode((960, 640)) pygame.display.set_caption("Test liveview Pygame") clock = pygame.time.Clock() font = pygame.font.SysFont(None, 36) t_start = time.time() frame_count = 0 premier_frame = None running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE): running = False try: t0 = time.time() f = cam.capture_preview() data = bytes(f.get_data_and_size()) dt = time.time() - t0 if premier_frame is None: premier_frame = time.time() - t_start print(f"1ere image en : {premier_frame:.2f}s") img_surface = pygame.image.load(io.BytesIO(data)) img_surface = pygame.transform.scale(img_surface, (960, 640)) screen.blit(img_surface, (0, 0)) frame_count += 1 fps = frame_count / (time.time() - t_start) txt = font.render(f"FPS: {fps:.1f} frame: {dt*1000:.0f}ms", True, (255, 255, 0)) screen.blit(txt, (10, 10)) pygame.display.flip() except Exception as e: print(f"Erreur: {e}") break clock.tick(30) cam.exit() pygame.quit() print(f"Total frames: {frame_count}, FPS moyen: {frame_count/(time.time()-t_start):.1f}")