INNER CODE UNIT · Python
take_editor_screenshot
prajwalshettydev/UnrealGenAISupport · Content/Python/mcp_server.py:379
def take_editor_screenshot() -> Image:
"""
Takes a screenshot of the primary monitor using a vendored OS-level library.
This is a robust method that requires no installation and bypasses the Unreal API.
"""
temp_path = "" # Ensure path is in scope for the finally block
try:
# 1. Create a secure, temporary file path with a .png extension.
with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as fp:
temp_path = fp.name
# 2. Use the simplest 'shot' method from mss to save the screenshot to the temp file.
with mss.mss() as sct:
sct.shot(mon=1, output=temp_path)
# 3. Read the created temporary file in binary mode to get the raw bytes.
with open(temp_path, "rb") as image_file:
image_bytes = image_file.read()