我曾经使用过
但是当我运行新代码时,我在最后一行收到了这个错误信息:
TypeError: argument 1 must be pygame.Surface, not PngImageFile 因此,变量“sprites”是一个“PngImageFile”,而“background.blit()”需要一个“pygame.Surface”对象作为输入:
- 我应该将“PngImageFile”转换为“pygame.Surface”吗?我找不到任何方法来做到这一点。 - 是否有更好的方法将PIL图像“blit”到“pygame.Surface”对象上?
我在StackOverflow上努力寻找答案,所以我很确定这不是重复的问题。任何意见或建议都非常欢迎。
Python 2.7
和pygame
来加载PNG并将其blit
到一个表面上,这段代码足以实现: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”吗?我找不到任何方法来做到这一点。 - 是否有更好的方法将PIL图像“blit”到“pygame.Surface”对象上?
我在StackOverflow上努力寻找答案,所以我很确定这不是重复的问题。任何意见或建议都非常欢迎。