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