pygame图像到base64

时间:2012-07-26 13:27:36

标签: python base64 pygame

我像这样捕捉我的pygame程序的屏幕

           data = pygame.image.tostring(pygame.display.get_surface(),"RGB")

如何将其转换为base64字符串? (无需将其保存到HDD)。重要的是没有保存到HDD。我知道我可以将它保存到文件然后只是将文件编码为base64但我似乎无法“动态”编码

感谢

2 个答案:

答案 0 :(得分:5)

如果需要,可以将其保存到StringIO,这基本上是一个存储为字符串的虚拟文件。

但是,我真的建议使用base64模块,该模块有一个名为base64.b64encode的方法。它可以随时处理您的动作。要求很好。

代码示例:

import base64
data = pygame.image.tostring(pygame.display.get_surface(),"RGB")
base64data = base64.b64encode(data)

快乐的编码!

答案 1 :(得分:0)

实际上 - pygame.image.tostring() 是一个非常奇怪的函数(真的不明白它返回的二进制字符串,我找不到任何可以正确处理它的东西)。

在pygame bitbucket上似乎有一个增强问题: (https://bitbucket.org/pygame/pygame/issue/48/add-optional-format-argument-to

我这样做了:

            data = cStringIO.StringIO()
            pygame.image.save(pygame.display.get_surface(), data)
            data = base64.b64encode(data.getvalue())

所以最后你得到有效且正确的base64字符串。它似乎工作。还不确定格式,将添加更多信息tmrw