Skip to main content

Screen:屏幕信息与截图

Screen 类提供了获取显示器分辨率、全屏截图及区域截图的功能。内置 DPI 自适应处理,确保在不同缩放倍率的 Windows 系统下坐标匹配依然精准。


1. 导入模块

在使用屏幕相关功能前,请先导入核心类:

# 导入屏幕操作类
from ascript.windows.screen import Screen

2. 静态方法

📏 获取屏幕尺寸 size()

获取主显示器的物理像素宽度和高度。

代码块:

# 获取显示器分辨率
Screen.size()

参数详解:

  • 无参数

返回值:

  • 返回一个包含宽高的列表,例如:[1920, 1080]

📸 屏幕截图 capture()

截取屏幕画面。支持全屏或指定区域,并可输出多种数据格式。

代码块:

# 执行屏幕截图
Screen.capture(rect=None, format="pillow", save_path=None)

参数详解:

  • rect (list): 指定截图区域 [左, 上, 右, 下]。若为 None,则截取全屏。
  • format (str): 输出的图像格式。可选:
    • "pillow": 返回 PIL.Image 对象(默认)。
    • "numpy": 返回 Numpy 数组。
    • "opencv": 返回适合 OpenCV 使用的 BGR 数组。
    • "base64": 返回 JPEG 编码的 Base64 字符串。
    • "base64:png": 返回 PNG 编码的 Base64 字符串。
  • save_path (str): 图片保存路径(如 "C:/shot.jpg")。支持自动创建文件夹,并根据后缀名(jpg/png)自动选择压缩算法。

返回值:

  • 根据 format 参数返回对应的图像对象、数组、字符串,或在保存成功后返回图像。

💡 案例演示

from ascript.windows.screen import Screen

# 1. 打印当前屏幕分辨率
w, h = Screen.size()
print(f"当前分辨率为: {w} x {h}")

# 2. 全屏截图并保存为高质量图片
Screen.capture(save_path="desktop.png")

# 3. 截取屏幕左上角 500x500 的区域并返回 OpenCV 格式
# 区域坐标为:左=0, 上=0, 右=500, 下=500
roi_img = Screen.capture(rect=[0, 0, 500, 500], format="opencv")

# 4. 获取截图的 Base64 字符串用于 Web 展示
b64_str = Screen.capture(format="base64")
print(b64_str) # 输出: data:image/jpeg;base64,...