1

大多数 pygame 示例使用接受文件名的 pygame.image.load() 版本。这很酷,但有时这还不够,所以我试图让接受文件对象和名称提示的版本工作。

所以这就是问题所在。这有效:

def loadSplashImgDirect(filename):
    return  pygame.image.load(filename))

这会引发“pygame.error:不支持的图像格式”

def loadSplashImgOpen():
    aFile = open(filename, 'r')
    return pygame.image.load(aFile,filename)

据我所知,这些函数应该做同样的事情。还是我读错了文档?

4

1 回答 1

0

如果您正在从类似文件的对象中读取图像,则必须确保文件的当前位置在开头,也就是在 offset 处0

例如:

f = open(filename)
content = f.read()
pygame.image.load(f, filename)

不起作用,因为当您调用image.load.

您可以使用seek将文件的当前位置设置为开头,因此

f = open(filename)
content = f.read()
f.seek(0)
pygame.image.load(f, filename)

按预期工作。

于 2013-02-03T15:37:01.710 回答