Python 如何在Pygame中创建像素数组?
根据报告: pygame.surfarray.blit_array()Python 如何在Pygame中创建像素数组?,python,arrays,pygame,Python,Arrays,Pygame,根据报告: pygame.surfarray.blit_array() 直接从数组值进行Blit blit_阵列(表面,阵列)->无 直接从数据库复制值 阵列到曲面中… 数组的维度必须与 曲面和将完全替换所有像素值。只有整数, 接受ascii字符和记录数组 我的代码如下: surf = pygame.display.set_mode( ( width, height ) ) pixels = [ # width * height * 3 [(255,241,232),(255,241
直接从数组值进行Blit
blit_阵列(表面,阵列)->无
直接从数据库复制值 阵列到曲面中…
数组的维度必须与 曲面和将完全替换所有像素值。只有整数, 接受ascii字符和记录数组 我的代码如下:
surf = pygame.display.set_mode( ( width, height ) )
pixels = [
# width * height * 3
[(255,241,232),(255,241,232),...],
[(255,241,232),(255,241,232),...],
...
]
surfarray.blit_array( surf, pixels )
运行它时,我得到一个错误ValueError:list对象没有导出数组缓冲区
我做错了什么
这是完整的错误信息
line 23, in <module>
surfarray.blit_array( surf, pixels )
line 81, in blit_array
return numpysf.blit_array (surface, array)
line 82, in blit_array
return array_to_surface(surface, array)
ValueError: list object does not export an array buffer
第23行,在
surfarray.blit_数组(surf,像素)
第81行,在blit_数组中
返回numpysf.blit_数组(曲面,数组)
第82行,在blit_数组中
将数组返回到曲面(曲面,数组)
ValueError:列表对象未导出数组缓冲区
pygame.surfarray.blit_array()的数组必须是任何数组对象,可以是np.array,也可以是数值数组。在这种情况下,由列表生成的数组不起作用,但您可以执行以下操作:
import numpy as np
pixels = np.array([
[(255,241,232),(255,241,232)],
[(255,241,232),(255,241,232)]
])
#rest the same...
它将列表数组转换为np.array
在pygame.surfarray的文档中,它指出:
用于在pygame曲面和阵列之间转换像素数据的函数。
此模块仅在pygame可以使用外部
小包裹
这是
[(255241232),(255241232),…]
确切的代码,还是您为了安全起见将其粘贴在这里readability@ZdaR它被截断了。我明白了,实际的数组大小是500*300*3。谢谢