From cb102c9e4b45f9b4c96be9a616aff789de4d3780 Mon Sep 17 00:00:00 2001 From: Jules Date: Wed, 8 Apr 2026 08:37:38 +0200 Subject: [PATCH] Preview webcam pendant capture DSLR (pas de freeze entre les poses) Co-Authored-By: Claude Opus 4.6 (1M context) --- backend/main.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/backend/main.py b/backend/main.py index 92de707..741584f 100644 --- a/backend/main.py +++ b/backend/main.py @@ -5,6 +5,8 @@ import logging from pathlib import Path from contextlib import asynccontextmanager +import cv2 + from fastapi import FastAPI, WebSocket, WebSocketDisconnect, UploadFile, File from fastapi.responses import FileResponse, JSONResponse from fastapi.staticfiles import StaticFiles @@ -506,7 +508,15 @@ async def traiter_message_ws(msg: dict, ws: WebSocket): if type_msg == "ping": await ws.send_json({"type": "pong"}) elif type_msg == "preview": - donnees = camera.preview() + # Pendant une capture DSLR, utiliser directement la webcam fallback + donnees = None + if capture_en_cours and camera._preview_webcam_fallback: + ret, frame = camera._preview_webcam_fallback.read() + if ret: + _, buf = cv2.imencode(".jpg", frame, [cv2.IMWRITE_JPEG_QUALITY, 70]) + donnees = buf.tobytes() + else: + donnees = camera.preview() if donnees: b64 = base64.b64encode(donnees).decode("ascii") await ws.send_json({"type": "preview", "image": f"data:image/jpeg;base64,{b64}"})