import base64 import io import mss from PIL import Image from config import SCREENSHOT_MONITOR, SCREENSHOT_WIDTH, SCREENSHOT_HEIGHT def capture_screen() -> str: """Screenshot des primären Monitors als base64-JPEG.""" with mss.mss() as sct: monitor = sct.monitors[SCREENSHOT_MONITOR] raw = sct.grab(monitor) img = Image.frombytes("RGB", raw.size, raw.bgra, "raw", "BGRX") img = img.resize((SCREENSHOT_WIDTH, SCREENSHOT_HEIGHT), Image.LANCZOS) buf = io.BytesIO() img.save(buf, format="JPEG", quality=80) return base64.b64encode(buf.getvalue()).decode("utf-8")