Python 当我用pygame加载枕头时,我得到了一个错误:“你知道吗?”;ValueError:无法识别的格式类型";

Python 当我用pygame加载枕头时,我得到了一个错误:“你知道吗?”;ValueError:无法识别的格式类型";,python,image,pygame,python-imaging-library,Python,Image,Pygame,Python Imaging Library,我想用Pygame加载枕头图像。我通过.tobytes()将一个PNG图像转换为Pythonbytes对象,并使用Pygame.image.fromstring()将其加载到Pygame中 这是我的代码: 从PIL导入图像 导入pygame image=image.open(“./QR/test.png”) image.show() mode=image.mode size=image.size 数据=image.tobytes() py_image=pygame.image.fromstrin

我想用Pygame加载枕头
图像
。我通过
.tobytes()
将一个PNG图像转换为Python
bytes
对象,并使用
Pygame.image.fromstring()
将其加载到Pygame中

这是我的代码:

从PIL导入图像
导入pygame
image=image.open(“./QR/test.png”)
image.show()
mode=image.mode
size=image.size
数据=image.tobytes()
py_image=pygame.image.fromstring(数据、大小、模式)
我的Python版本是3.7.5,Pillow版本是7.0.0,Pygame版本是1.9.6。 我在最后一行中出错:


ValueError:无法识别的格式类型

问题在于Pillow以灰度模式加载图像,因为它可以,但Pygame无法识别。要解决此问题,您需要将图像转换为Pygame能够理解的格式,方法是将第三行更改为:

image=image.open(“./QR/test.png”).convert(“RGB”)
如果需要alpha通道,请将
“RGB”
更改为
“RGBA”

请注意,如果您不打算使用枕头中的图像,您可以使用

py_image=pygame.image.load(“./QR/test.png”)
它更快、更短