Accélérer la capture : viewfinder warmup en arrière-plan
- Supprime sleep(0.2) avant capture et viewfinder off inutile - Déplace activer_viewfinder + chauffer_liveview dans un thread daemon après le save, pour retourner la photo immédiatement - Supprime pause(150ms) frontend entre fin countdown et capture Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -185,14 +185,6 @@ class Camera:
|
||||
log.error("Camera None pendant capture")
|
||||
self.preview_dslr_ok = False
|
||||
return None
|
||||
try:
|
||||
cfg = self.camera.get_config()
|
||||
vf = cfg.get_child_by_name("viewfinder")
|
||||
vf.set_value(0)
|
||||
self.camera.set_config(cfg)
|
||||
time.sleep(0.2)
|
||||
except Exception:
|
||||
pass
|
||||
log.info(f"Déclenchement capture DSLR (tentative {attempt+1}/3)")
|
||||
chemin_camera = self.camera.capture(gp.GP_CAPTURE_IMAGE)
|
||||
fichier_camera = gp.CameraFile()
|
||||
@@ -201,8 +193,7 @@ class Camera:
|
||||
)
|
||||
tmp_path = str(chemin_dest) + ".tmp"
|
||||
fichier_camera.save(tmp_path)
|
||||
self.activer_viewfinder()
|
||||
self._chauffer_liveview()
|
||||
threading.Thread(target=self._post_capture_warmup, daemon=True).start()
|
||||
from PIL import ImageOps as PILImageOps
|
||||
img = PILImageOps.exif_transpose(PILImage.open(tmp_path))
|
||||
if img.width > 4000:
|
||||
@@ -225,6 +216,10 @@ class Camera:
|
||||
self.preview_dslr_ok = False
|
||||
return None
|
||||
|
||||
def _post_capture_warmup(self):
|
||||
self.activer_viewfinder()
|
||||
self._chauffer_liveview()
|
||||
|
||||
def _chauffer_liveview(self, tentatives: int = 8, pause: float = 0.15):
|
||||
"""Consomme les premieres frames LiveView juste apres la remontee du miroir
|
||||
(souvent en erreur ~1-2s le temps que l'AF/capteur se stabilise), pendant
|
||||
|
||||
Reference in New Issue
Block a user