Preview webcam pendant capture DSLR (pas de freeze entre les poses)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-08 08:37:38 +02:00
parent 7df190b5bc
commit cb102c9e4b

View File

@@ -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}"})