[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Directly accessing pixel data



Alex Holkner wrote:

> Using surfarray.pixels2d will give you a Numeric array overlayed over
> the buffer, you can extract the buffer pointer with a little ctypes
> hackery (see array.py in pygame-ctypes).

Hi Alex,

The updated docs on the pygame website say that numarray is compatible
with surfarray, but blit_array does not accept a numarray argument. Is
only numeric supported?

Here is the original message:

Hey all,

So I'm just looking for a good way to get pixel access to images in python.

Seems surfarray is a great option. The manual states that I can use
numarray,numpy or numeric:

"Any type of array (numpy, numarray or Numeric) can be used as the input
to any function regardless of the array module set."
(from http://www.pygame.org/ctypes/pygame-api/pygame.surfarray-module.html)

I have chosen numarray and I suppose will eventually change to numpy.

but it seems I am actually not allowed to pass a numarray to a surfarray
function:

>>> type(image)
<class 'numarray.numarraycore.NumArray'>
>>> pygame.surfarray.blit_array(mysurface, image)
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
TypeError: argument 2 must be array, not NumArray


It looks like there is no random_array module in numeric nor numpy,
just numarray.

So how can I get this to work?

Thanks.
B. Bogart