On Sat, Feb 28, 2009 at 10:53:56AM -0800, Lenard Lindstrom wrote: > Marius Gedminas wrote: >> On Fri, Feb 27, 2009 at 08:04:30PM -0800, Lenard Lindstrom wrote: >>> But arithmetic operations have ufunc equivalents which take an >>> optional output array. This means the astype(), along with its >>> intermediate array, can be removed. It probably also means the >>> intermediate array float array goes away as well. So it is likely >>> this alternative uses no intermediate arrays. >>> >>> ## array = pygame.surfarray.pixels_alpha(image) >>> alpha = 42.5 >>> ## array[...] = (mask * alpha / 255).astype('b') >>> numpy.multiply(mask, alpha / 255, pygame.surfarray.pixels_alpha(image)) >> >> Unfortunately this gives me a TypeError: return arrays must be of ArrayType >> > I'm guessing you have both Numeric and NumPy installed.
Yes; and since I'm not writing for myself only, I'd like the code to work with all possible combinations of Numeric/NumPy/PyGame versions. (I have fallbacks in place when numpy or Numeric cannot be important.) > Try > > pygame.surfarray.user_arraytype('numpy') > > at the start. NumPy became the default only recently with 1.9. Unfortunately, this gives me AttributeError: 'module' object has no attribute 'user_arraytype' I've got pygame 1.8.1 here (Ubuntu's 1.8.1release-0ubuntu1 to be precise) Marius Gedminas -- Q: A good ninja is hard to find. A: Well, yes, actually, being hard to find is the whole point with them. -- http://tinyurl.com/5tnrwr
signature.asc
Description: Digital signature