写在前面
这个MSS大概是Many Screen Shot的缩写,意为多窗口截屏,是使用ctypes的截图。别看它用ctypes调用系统API,它却能跨平台(win,linux,mac)不得不说作者还是很强大的
Github 官方文档
优点
- 小,压缩(whl)后仅76KB解压后共3.14MB其中3MB还是测试图片。。。
- 无包依赖
- 快,我的surface上大概0.2~0.5s一张(1920x1440px)当然,不是特别快
- 清晰,比PIL和pyautogui(中的pyscreeze,实际上还是调用PIL)的清晰的多:
6倍放大还很清晰,如果PIL要的话,就需要1.7s了
缺点
- 有人可能还觉得慢
- 占用内存大(由于png格式)
安装
最新版只有76KB,需要py3.5以上。下面的版本至少要MSS1.0,内测版太不完善了。
使用
导入用import mss
就可以了
简单使用
with mss.mss() as m:
pass
主要方法
方法 | 参数 | 意义 |
---|---|---|
m.grab | 截图区 | 只截图,返回ScreenShot对象 |
m.shot | save的参数 | 保存第一个显示器的截图 |
m.save | 显示器,输出格式,回调 | 这是一个迭代器 |
m.monitors
保存着显示器的分辨率
m.rgb
m.bgra
是图像数据
推荐使用m.shot
和m.grab
截图为文件
方法一: m.shot
with mss.mss() as m:
mss.shot()
#名称: monitor-1.png
方法二: m.grab
###
import mss.tools
###
rect = (0,0