使用 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让我知道答案。
嗨,我正在尝试使用 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让我知道答案。