Thanks, John and Michael.

Yeah, Michael, that's what I'm doing now, but eventually (like, now) I'd like 
to do what John implies is possible, i.e., "invert" a cm back to its RGB table 
- John (or anyone) can you short-cut the learning process for me w/ a code 
example of how to do this? :-)  Thanks!

DG
--- On Tue, 9/9/08, Michael Droettboom <[EMAIL PROTECTED]> wrote:

> From: Michael Droettboom <[EMAIL PROTECTED]>
> Subject: Re: [Matplotlib-users] Next problem: pixel-to-pixel alpha variation
> To: [EMAIL PROTECTED]
> Cc: matplotlib-users@lists.sourceforge.net
> Date: Tuesday, September 9, 2008, 7:22 AM
> David Goldsmith wrote:
> > Hi, folks.  OK, I'm trying to set the alpha
> channel, pixel by pixel, using figimage w/ the data being of
> the "luminance" type (i.e., an MxN array).  The
> Users Guide indicates that figimage takes an alpha= keyword
> argument, and it doesn't crash when I pass an array for
> this value, but subsequently when I try to draw it using
> fig.draw(canvas.get_renderer()), I get:
> >
> >   
> >>>> fig.draw(canvas.get_renderer())
> >>>>         
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in
> <module>
> >   File
> "C:\python25\lib\site-packages\matplotlib\figure.py",
> line 607, in draw
> >     im.draw(renderer)
> >   File
> "C:\python25\lib\site-packages\matplotlib\image.py",
> line 597, in draw
> >     im = self.make_image()
> >   File
> "C:\python25\lib\site-packages\matplotlib\image.py",
> line 583, in make_im
> > age
> >     x = self.to_rgba(self._A, self._alpha)
> >   File
> "C:\python25\lib\site-packages\matplotlib\cm.py",
> line 76, in to_rgba
> >     x = self.cmap(x, alpha=alpha, bytes=bytes)
> >   File
> "C:\python25\lib\site-packages\matplotlib\colors.py",
> line 423, in __call
> > __
> >     alpha = min(alpha, 1.0) # alpha must be between 0
> and 1
> > ValueError: The truth value of an array with more than
> one element is ambiguous.
> >  Use a.any() or a.all()
> >
> > which to me "smells" as if the array-valued
> alpha is the problem.  
> >
> > Clearly (?) I can do what I'm after if I use MxNx4
> data, but is that the only way to have a varying alpha?
> >   
> The alpha parameter always takes only a single (global)
> value, and the 
> only way to do pixel-by-pixel alpha is an MxNx4 array.  It
> should be 
> fairly straightforward to create this array by
> concatenating together 
> three copies of the luminance and one copy of your alpha,
> though.
> 
> Something like:
> 
>   # lum is MxN, alpha is MxN
>   lum = lum.reshape((M, N, 1))
>   alpha = alpha.reshape((M, N, 1))
>   rgba = numpy.concatenate((lum, lum, lum, alpha))
> 
> (There might be an even more straightforward way ---
> I'm not much of a 
> numpy expert...)
> 
> Cheers
> Mike
> 
> -- 
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA


      

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to