使用 BytesIO 将图像从枕头加载到​​ PyGame

Loading Images from pillow into PyGame with BytesIO

嗨,我正在尝试使用 BytesIO 将我的图像从 Pillow 加载到 Pygame。

from PIL import Image
import io

pilImage = Image.open('AgV6E.png')
temp_io = io.BytesIO()
pilImage.save(temp_io, format='PNG')
pygame.image.load(temp_io)

我收到以下错误: pygame.image.load(temp_io) pygame.error: Unsupported image format

奇怪的是,尽管简单地保存为 png 就可以了。

from PIL import Image
import io

pilImage = Image.open('AgV6E.png')
pilImage.save("test.png", format='PNG')
pygame.image.load("test.png")

有人知道如何解决这个问题吗?

原来我需要 运行 BytesIO.seek(0) 在 运行 加载之前将流位置设置回零。这是更新后的代码。

from PIL import Image
import io

pilImage = Image.open('AgV6E.png')
temp_io = io.BytesIO()
pilImage.save(temp_io, format='PNG')
temp_io.seek(0)
pygame.image.load(temp_io)

seek(0) 可能是在将流位置移回开头时使其能够被正确读取的原因。 感谢Starbuck5让我知道答案。