Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将mss屏幕截图转换为pil图像_Python_Python Imaging Library_Python Mss - Fatal编程技术网

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

Python 将mss屏幕截图转换为pil图像,python,python-imaging-library,python-mss,Python,Python Imaging Library,Python Mss,我用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, 4

我用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))
回溯(最近一次呼叫最后一次):
文件“/Users/Hari/Desktop/stuff/Tetris/test.py”,第84行,在
img=im.裁剪((40*i+376,40*j+485,40*i+396,40*j+505))
AttributeError:“屏幕截图”对象没有属性“裁剪”
使用mss.mss()作为sct:
监视器=sct.监视器[1]
im=sct.GRAP(监视器)
对于范围(0,10)内的i:
对于范围(0,18)内的j:
img=im.裁剪((40*i+376,40*j+485,40*i+396,40*j+505))
rgb=img.convert('rgb')
r、 g,b=rgb.getpixel((1,1))

图像可以转换为PIL对象,下面是示例代码


当你计划裁剪时,考虑把它作为一部分,而不是抓取整个屏幕和裁剪作为后处理。

谢谢!工作起来很有魅力。