如何在Python 3.7中使用Pygame显示用Pillow加载的图像?

Spi*_*005 3 python png pygame python-imaging-library python-3.7

我使用以下命令将图像导入到我的项目中

\n\n
from PIL import Image\nmyImage = Image.open("myImageDirectory.png")\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以 myImage 现在作为 png 文件导入。但我想使用 Pygame 将其显示到屏幕上。通常我使用

\n\n
import pygame\nwin = pygame.display.set_mode((500, 500))\nwin.blit(myImage, (50, 50))\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我收到错误消息,该函数需要一个表面,而不是一个 png 文件。\n有谁知道如何将图像转换为表面或如何显示它?

\n\n

我还没有尝试太多\xe2\x80\x8b,因为我没有找到任何可以解决我的问题的东西。

\n\n

编辑:

\n\n

这种方式有什么问题,我收到错误:无法打开 bg.png

\n

Rab*_*d76 6

请参阅PIL 和 pygame.image。使用Image.tobytes()将图像数据作为字节对象获取并将pygame.image.fromstring()数据加载到pygame.Surface对象中:

from PIL import Image
import pygame
Run Code Online (Sandbox Code Playgroud)
pilImage = Image.open("myImageDirectory.png")
myImage = pygame.image.fromstring(pilImage.tobytes(), pilImage.size, pilImage.mode)
Run Code Online (Sandbox Code Playgroud)