[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TVIM display routine on 24-bit displays



David Williams (d.williams@qub.ac.uk) writes:

> I've recently made the switch (as a user, not as sysadmin!) from a Sun
> Ultra running Solaris to a PC running Red Hat 6.2. No big deal, perhaps,
> but I'm having to come to terms with using a decent graphics card with
> 24-bit colour when using IDL (and the various astronomy add-ons like CDS
> and SolarSoft).
> 
> My problem is this: I used to use a very nifty display routine by Paul
> Ricchiazzi called TVIM.PRO, which always did the job brilliantly for me.
> It still plots fine on a postscript device, but when you use it to
> display an image on your 24-bit colour XWindow, the colour table doesn't
> scale nicely. If you're using colour table 0 (greyscale), for example,
> to view a 2-D image, then it doesn't scale from black (minimum data
> value) to white (maximum data value) as it would under an 8-bit display.
> 
> I know that the colour system under 24-bit isn't as straightforward as
> under 8-bit, for which (I read) IDL is optimised.
> 
> Because so many of my routines (and some of my colleagues') depend on
> TVIM and all its nice keywords, does anyone know of a way to make TVIM
> display things properly on a 24-bit XWindow? The only kludge I've been
> able to get to work so far has been to get our sysadmin to cripple the
> machine's display to 8-bit colour, which seems like a rather ham-fisted
> way of doing things.
> 
> Any help would be _greatly_ appreciated,

I think most of the problem is in this one line:

   max_color=!d.n_colors-2

This line should really be set to this:

   max_color=!d.table_size-2

Then, I would add a Device, Decomposed=0 line someplace
in the file. Or, you can always remember to do this
at the IDL command line. :-)

Cheers,

David
-- 
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155