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)
尽我所知,这些功能应该完全相同。或者我读错了文档?
答案 0 :(得分:0)
如果您正在从类似文件的对象中读取图像,则必须确保文件的当前位置位于开始位置,即偏移0
处的a.k.a.
例如:
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)
按预期工作。