我试图将一个图像从服务器发送到客户端,然后让客户端用show()显示它,但是我遇到了一些问题。 这是发送图像的服务器代码:
im = ImageGrab.grab()
if not os.path.exists(r'C:\screens'):
os.makedirs(r'C:\screens')
im.save(r'C:\screens\screen.jpg')
data = open(r'C:\screens\screen.jpg', 'r')
data = data.read()
client_socket.send(str(data))
现在,显然我不能通过套接字发送文件,所以我将其作为字符串发送,但是,我不知道如何在客户端中使用show(),因为您不能在字符串上使用show(),我也不知道如何实现这一点。 正如你所看到的,我几乎是一个python初学者,所以如果解决方案简单明了,我很抱歉。 我很感激你的帮助,谢谢!
你用的是Python 2还是3?(编辑:python 2.7,在标签中,对不起)无论如何:一个图像文件几乎总是不是文本,所以不要把它当作文本。
data = open("image.jpg", "rb").read()
str
,而是直接发送二进制(字节)。recv
字节。我想您可以使用Image.frombytes
直接从中创建一个图像并显示出来。或者,将从套接字获得的字节写入一个新文件(确保以“wb”二进制模式打开它)并Image.open()
该文件。相关问题 更多 >
编程相关推荐