将 mss 屏幕截图转换为 pil 图像

convert mss screenshot to pil image

我使用 mss 截取屏幕截图,因为它显然可以快速截取屏幕截图。那么有没有一种方法可以将它转换成图像而不将它保存在我的计算机上(速度更快),就像枕头中的 image.grab() 一样。这是因为我需要执行各种操作,例如裁剪以找到适合枕头的颜色。

Traceback (most recent call last):
  File "/Users/Hari/Desktop/stuff/Tetris/test.py", line 84, in <module>
    img = im.crop((40*i+376, 40*j+485, 40*i+396, 40*j+505))
AttributeError: 'ScreenShot' object has no attribute 'crop'


with mss.mss() as sct:
    monitor = sct.monitors[1]
    im = sct.grab(monitor)

for i in range(0,10):
    for j in range(0, 18):
        img = im.crop((40*i+376, 40*j+485, 40*i+396, 40*j+505))
        rgb = img.convert('RGB')
        r, g, b = rgb.getpixel((1, 1))

图片可以转PIL对象,有示例代码here

当您计划裁剪时,请考虑将其作为 grabbing 的一部分,而不是抓取整个屏幕并将裁剪作为 post 处理。