Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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:如何在PIL.ImageGrab中获取屏幕截图数据?_Python_Python Imaging Library - Fatal编程技术网

Python:如何在PIL.ImageGrab中获取屏幕截图数据?

Python:如何在PIL.ImageGrab中获取屏幕截图数据?,python,python-imaging-library,Python,Python Imaging Library,我可以通过PIL中的ImageGrab.grab()抓取一个屏幕截图,它返回一个实例,但是我们知道,我们不能通过套接字发送或接收一个实例。如何获取屏幕截图的二进制数据 如果我先使用save方法,然后使用open(file,'wb'),那么我就可以得到二进制数据,但是如果我每秒抓取24张图片,将花费大量的磁盘资源。如何直接获得二进制数据而不是使用save和open while True: screen=ImageGrab.grab() screen.save('c:\\1.jpeg

我可以通过PIL中的ImageGrab.grab()抓取一个屏幕截图,它返回一个实例,但是我们知道,我们不能通过套接字发送或接收一个实例。如何获取屏幕截图的二进制数据

如果我先使用save方法,然后使用open(file,'wb'),那么我就可以得到二进制数据,但是如果我每秒抓取24张图片,将花费大量的磁盘资源。如何直接获得二进制数据而不是使用save和open

while True:
    screen=ImageGrab.grab()
    screen.save('c:\\1.jpeg','jpeg')
    f=open('c:\\1.jpeg','wb')
    data=f.read()
    f.close()
    sock.sendto(data,addr)

例如,您可以将图像序列化为
StringIO
(内存文件),如

。。然后像这样打开它:

my_img = PIL.Image.open(cStringIO.StringIO(data))

或者使用诸如
screen.tostring()
/
.fromstring()
-之类的低级函数,并额外传输几何体/模式。

您可以将图像序列化为
StringIO
(内存文件中)如

。。然后像这样打开它:

my_img = PIL.Image.open(cStringIO.StringIO(data))
或者使用诸如
screen.tostring()
/
.fromstring()
-等低级函数,并额外传输几何体/模式。

f=open('c:\\1.jpeg','wb')应该是f=open('c:\\1.jpeg','rb')f=open('c:\\1.jpeg','wb')应该是f=open('c:\\1.jpeg','rb)