mss sct.grab不允许我选择使用哪种显示器

时间:2017-11-28 20:47:39

标签: python python-mss

我有两台显示器连接到我的电脑,两台显示器同时处于活动状态。监视器不是镜像的 - 每个都显示不同的内容。

我需要能够在代码中选择我想要与sct.grab一起使用的这两个监视器中的哪一个。

我已经看过并测试了这段代码:sct_img = sct.grab(sct.monitors [1]) 它的工作原理 - 我可以将“1”更改为“2”,它确实会截断另一台显示器 - 所有这些。但是,我无法弄清楚如何将sct.grab传递给我希望使用的监视器的参数,以及我希望仅为部分屏幕截图获取的屏幕区域。看来我可以获得部分截图,但不能选择显示器,或者我可以选择显示器,但只能获得全屏。我需要选择显示器,并选择区域。我正在寻找合适语法的帮助。

我有这段代码:

sct_img = sct.grab({'top': 160, 'left': 160, 'width': 160, 'height': 135})

但是我想要的是告诉sct.grab我的两个监视器中的哪一个可以得到这个:例如,类似于字典中的参数指定要使用哪个监视器会很好:

sct_img = sct.grab({'mon': 2, 'top': 160, 'left': 160, 'width': 160, 'height': 135})

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

目前在MSS中没有自动执行此操作的方法。您最好的方法是使用sct.monitors中存储的值计算坐标。

类似的东西:

mon2 = sct.monitors[2]
box = {
    'top': mon2['top'] + 160,
    'left': mon2['left'] + 160,
    'width': 160,
    'height': 135,
}
sct.grab(box)