You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BytesIO将Pillow图片加载到PyGame时报不支持格式错误如何解决

问题修复方案

错误原因

你将PIL处理后的图片写入BytesIO对象后,数据流的文件指针会停在写入内容的末尾,此时pygame.image.load()从指针位置开始读取,无法获取到有效的图片数据,因此抛出「不支持的图片格式」错误。而写入本地文件再读取时,系统会自动从文件头部开始读取,所以不会触发问题。

修复方法

在写入BytesIO后调用seek(0)将文件指针重置到数据流起始位置即可,修改后代码如下:

from PIL import Image
import io
import pygame

pilImage = Image.open('AgV6E.png')
temp_io = io.BytesIO()
pilImage.save(temp_io, format='PNG')
# 重置文件指针到数据流开头
temp_io.seek(0)
pygame.image.load(temp_io)

优化方案(可选)

你可以跳过PNG序列化/反序列化的步骤,直接将PIL图片转换为Pygame的Surface对象,性能更高:

from PIL import Image
import pygame

pilImage = Image.open('AgV6E.png').convert('RGBA')
pygame_surface = pygame.image.frombuffer(pilImage.tobytes(), pilImage.size, pilImage.mode)

内容的提问来源于stack exchange,提问作者Flare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:27:08