我有一段代码可以使用
my_surface = pygame.image.load('some_image.png')
这将返回一个 pygame 表面。我想在其他地方使用相同的代码,而是传入一个 numpy 数组。(实际上,我将有一个 if 语句来确定我们是否有一个数组或一个图像的路径。在任何一种情况下,函数都必须返回相同类型的对象,一个 pygame 表面。它已经使用上面的方法工作了代码。如果脚本的使用方式不同,现在我必须添加第二种生成相同对象的方法。)我尝试过使用
my_surface = pygame.pixelcopy.make_surface(my_array)
但问题是这个函数需要一个 INTEGER 数组。我的数组是一个 float32。我可以通过像这样传递数组来强制它通过
(my_array*10000).astype(int)
但是当我稍后显示它时,它看起来像垃圾(想象一下我的惊讶)。所以我的问题是,我们如何从一个 numpy 浮点数组中优雅地创建一个 pygame 表面?