pygame.pixelcopy
pygame module for general pixel array copying
copy surface pixels to an array object
copy an array object to a surface
copy an array to another array, using surface format
Copy an array to a new surface

这个 pygame.pixelcopy 模块包含用于在曲面和导出数组结构接口的对象之间进行复制的函数。它是的后端 pygame.surfarraypygame module for accessing surface pixel data using array interfaces ,添加对NumPy的支持。但PixelCopy更通用,而且是直接使用的。

数组结构接口以标准方式公开数组数据。它是在NumPy中推出的。在Python2.7及更高版本中,它被新的缓冲区协议所取代,尽管缓冲区协议仍在开发中。另一方面,数组结构接口是稳定的,并且可以与早期版本的Python一起使用。因此,就目前而言,数组结构接口是PYGAME处理数组内省的主要方式。

对于整数像素值的2D阵列,这些值被映射到相关表面的像素格式。要获取像素值的实际颜色,请使用 pygame.Surface.unmap_rgb()convert a mapped integer color value into a Color 。2D阵列只能在具有相同像素布局的表面之间直接使用。

PYGAME 1.9.2中新增功能。

pygame.pixelcopy.surface_to_array()
copy surface pixels to an array object
surface_to_array(array, surface, kind='P', opaque=255, clear=0) -> None

Surface_to_ARRAY函数将像素从Surface对象复制到2D或3D数组。视论点而定 kind 和目标阵列维度,副本可以是原始像素值、RGB、颜色分量切片或Colorkey Alpha透明值。公认的 kind 值为单字符代码‘P’、‘R’、‘G’、‘B’、‘A’和‘C’。种类代码不区分大小写,因此‘p’等同于‘p’。目标的前两个维度必须是表面大小(w,h)。

默认的‘P’类代码将原始整数像素值(映射)直接复制到2D数组,并将‘RGB’像素分量(未映射)复制到具有形状(w,h,3)的3D数组。对于8位色彩映射表表面,这意味着表索引被复制到二维数组,而不是表值本身。2D数组的项大小必须至少与表面的像素字节大小相同。3D数组的项大小必须至少为一个字节。

对于‘R’、‘G’、‘B’和‘A’复制种类,未映射表面像素的单个颜色分量被复制到目标2D阵列。对于种类‘A’和具有源Alpha的曲面(该曲面是使用SRCALPHA标志创建的),具有一个Colorkey(使用设置 Surface.set_colorkey() ),或有一个毯子字母(设置为 Surface.set_alpha() ),则Alpha值为SDL曲面的预期值。如果曲面没有显式的Alpha值,则目标数组将填充可选 opaque Surface_to_ARRAY参数(默认为255:不透明)。

复制种类‘C’是具有Colorkey的源曲面的Alpha复制的特例。与A颜色分量副本不同, clear 参数值用于ColorKey匹配, opaque 否则的话。默认情况下,匹配的Alpha为0(完全透明),而其他所有内容都为Alpha 255(完全不透明)。它是更通用的实现 pygame.surfarray.array_colorkey()Copy the colorkey values into a 2d array

特定于Surface_to_ARRAY,对于形状或项目大小不正确的目标数组,会引发ValueError。对于不正确的种类代码引发了TypeError。特定于表面的问题,如锁定,会引发一场骗局。错误。

pygame.pixelcopy.array_to_surface()
copy an array object to a surface
array_to_surface(<surface>, <array>) -> None

看见 pygame.surfarray.blit_array()Blit directly from a array values

pygame.pixelcopy.map_array()
copy an array to another array, using surface format
map_array(<array>, <array>, <surface>) -> None

根据<Surface>的格式,将颜色元素值数组(w,h,...,3)映射到像素数组(w,h)。

pygame.pixelcopy.make_surface()
Copy an array to a new surface
pygame.pixelcopy.make_surface(array) -> Surface

创建与阵列的数据和格式最相似的新曲面。该数组可以是具有任意大小整数值的2D或3D。




Edit on GitHub