refactor(vwb): refonte complète capture écran — stable définitivement
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 13s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 13s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
FullscreenSelector réécrit : - Overlay unique positionné via getBoundingClientRect() - Recalcul auto au resize - Coordonnées souris relatives à l'image - Plus de décalage bboxes/sélection Capture backend : - mss.monitors[0] (écran composite) au lieu de pyautogui.screenshot() - Capture la VM en plein écran correctement Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -52,10 +52,24 @@ def capture_screen():
|
||||
}
|
||||
"""
|
||||
try:
|
||||
import pyautogui
|
||||
# Utiliser mss pour capturer TOUS les moniteurs (ecran compose).
|
||||
# pyautogui.screenshot() capture uniquement le premier moniteur,
|
||||
# ce qui rate la VM en plein ecran sur un second ecran ou via QEMU/spice.
|
||||
# mss.monitors[0] = ecran compose (tous les moniteurs), ce qui capture
|
||||
# exactement ce que l'utilisateur voit quel que soit le setup.
|
||||
try:
|
||||
import mss
|
||||
with mss.mss() as sct:
|
||||
# monitors[0] = ecran virtuel englobant tous les moniteurs
|
||||
monitor = sct.monitors[0]
|
||||
sct_img = sct.grab(monitor)
|
||||
# Convertir mss ScreenShot (BGRA) en PIL Image RGB
|
||||
screenshot = Image.frombytes('RGB', sct_img.size, sct_img.rgb)
|
||||
except ImportError:
|
||||
# Fallback pyautogui si mss n'est pas installe
|
||||
import pyautogui
|
||||
screenshot = pyautogui.screenshot()
|
||||
|
||||
# Capture écran
|
||||
screenshot = pyautogui.screenshot()
|
||||
width, height = screenshot.size
|
||||
|
||||
# Convertir en base64
|
||||
|
||||
Reference in New Issue
Block a user