Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Pygame中创建像素数组?_Python_Arrays_Pygame - Fatal编程技术网

Python 如何在Pygame中创建像素数组?

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

根据报告:

pygame.surfarray.blit_array()
直接从数组值进行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。谢谢