我用Python 2.7
和pygame
,并加载PNG和blit
它的表面,该代码已经足够:如何解决此错误:类型错误:参数1必须pygame.Surface,不PngImageFile
sprites = pygame.image.load('sprites.png')
background.blit(sprites, (0, 0), rect)
现在我正在使用Python 3
,这意味着我需要加载PIL
来处理PNG文件。我的新代码如下所示:
from PIL import Image
sprites = Image.open('sprites.png')
background.blit(sprites, (0, 0), rect)
但是当我运行新的代码,我得到的最后一行此错误:
TypeError: argument 1 must be pygame.Surface, not PngImageFile
所以sprites
变量是一个PngImageFile
和background.blit()
期待一个pygame.Surface
对象作为输入:
- 我应该转换
PngImageFile
为pygame.Surface
?我找不到任何方法来做到这一点。 - 有没有更好的办法来
blit
一个PIL图像到一个pygame.Surface
对象?
我试过很难在StackOverflow上寻找答案,所以我很确定这不是一个重复的问题。任何意见或建议将非常受欢迎。
抱歉,你是怎么PIL与Python3工作..他们甚至没有带它发布了吗? o0 – Torxed
此外,将图像从字符串加载到pygame图像中:http://www.pygame.org/docs/ref/image.html#pygame.image.fromstring – Torxed
有一个叫做枕头的叉子,它似乎工作,让我知道如果你需要进一步的细节 – hertsmael