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:
@@ -5,6 +5,8 @@ import logging
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
|
import cv2
|
||||||
|
|
||||||
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, UploadFile, File
|
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, UploadFile, File
|
||||||
from fastapi.responses import FileResponse, JSONResponse
|
from fastapi.responses import FileResponse, JSONResponse
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
@@ -506,7 +508,15 @@ async def traiter_message_ws(msg: dict, ws: WebSocket):
|
|||||||
if type_msg == "ping":
|
if type_msg == "ping":
|
||||||
await ws.send_json({"type": "pong"})
|
await ws.send_json({"type": "pong"})
|
||||||
elif type_msg == "preview":
|
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:
|
if donnees:
|
||||||
b64 = base64.b64encode(donnees).decode("ascii")
|
b64 = base64.b64encode(donnees).decode("ascii")
|
||||||
await ws.send_json({"type": "preview", "image": f"data:image/jpeg;base64,{b64}"})
|
await ws.send_json({"type": "preview", "image": f"data:image/jpeg;base64,{b64}"})
|
||||||
|
|||||||
Reference in New Issue
Block a user