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,...