我开发一个树莓派一个时间关键应用程序,我需要通过网络发送的图像。 当我拍摄图像时,我做的是这样的:如何pygame的表面保存为图像内存(而不是磁盘)
# pygame.camera.Camera captures images as a Surface
pygame.image.save(mySurface,'temp.jpeg')
_img = open('temp.jpeg','rb')
_out = _img.read()
_img.close()
_socket.sendall(_out)
这是不是很有效。我希望能够将表面保存为内存中的图像,并直接发送字节,而不必先将其保存到磁盘。
感谢您的任何意见。
编辑:导线的另一端是一个.NET应用程序期待字节
你可以使用'pygame.image.tostring'吗?看起来像你想要的,但我找不到它生成的二进制文件的很好的文档。 – kalhartt
貌似PIL可以载入这种格式,尝试通过pygame.image.tostring到PIL,根据需要转换,然后发送。我时,我可以测试和编写正确的答案 – kalhartt
@kalhartt嘿,当你写你的答案,我不认为你会需要PIL。你可以从'tostring'中取出字符串并在其上使用'pygame.image.fromstring()'。您将必须指定图像的大小和您使用的格式。一种常见的格式是'RGBA'。 – Shashank