我使用pygame库在python中制作了一个简单的游戏,效果很好。唯一的问题是它需要图像,这意味着如果我想分享我的创作,我必须把它全部放在拉链(或其他档案)中,这是一个痛苦,特别是当你不断更新程序时。
我知道这听起来有点愚蠢,但是有没有一种编码图像文件的方法,以便它可以存储在python文件本身中?例如,在文本编辑器中打开图像时,您可以将图像看作文本。我可以将它粘贴到python中并使用一些库将其解码回图像吗?如果没有,我可能只是将图像放在服务器上,并使程序每次都检索它们。我觉得要问它也不会有什么坏处。
答案 0 :(得分:2)
是的,这是可能的,实际上很容易。首先必须使用pygame.image.tostring(image, format)
函数将曲面解码为字符串。它采用表面和格式(可能是RGB
或RGBA
)。然后,您可以将返回的字符串保存在脚本中:
string = pygame.image.tostring(surface, 'RGB')
print(string) # A long bytes string (b'\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff....')
然后使用pygame.image.fromstring(image, size, format)
(尺寸为预期的表面尺寸)加载图像
string = b'\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff....'
surface = pygame.image.fromstring(string, surface.get_size(), 'RGB')
print(surface)
您只需将tostring
的输出复制到脚本中。