我開發一個樹莓派一個時間關鍵應用程序,我需要通過網絡發送的圖像。 當我拍攝圖像時,我做的是這樣的:如何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